作者简介:C/C++ 、Golang 领域耕耘者,创作者
个人主页:作者主页
活动地址:CSDN21天学习挑战赛
如果感觉博主的文章还不错的话,还请关注➕ 、点赞👍 、收藏🧡三连支持一下博主哦~~~
暑假期间打开csdn私信发现这个挑战赛, 感觉奖励挺丰富的,就参加了,这几年c站了一直出了很多有意思的活动
丰富自己写作技巧,同时也期待更多同领域志同道合的朋友,一起交流~~~
预计在这个活动期间 发布9篇相关内容文章
从基本的算法定义,分析,到最后算法实现
每周3篇内容
博客内容产出
代码进行总结
在一个已知无序(或有序)的队列中找出与给定的关键字相同的数的具体位置。 其原理是让关键字与队列中的数从开始一个一个地往后逐个比较,直到找到与给定的关键字相同的数。 当然,顺序查找绝不仅限于对数字、字符的查找,也适用于前缀、对象信息的关键信息的匹配等。
简单来说就是,按照顺序对一个数据结构进行查找指令的关键字,属于基础算法。
给定你一个长度为 n 的整数数列,求出关键字 key值在数列中的位置
比较基础,只需一步
key依次比对,相等则返回数组下标,不相等则继续下一次对比for (int i = 0; i < n; i++)
{
if (key == arr[i])
{
cout << "key 出现的位置为: " << i << endl;
break;
}
}
最优情况:当key 在数列中的第一个位置时, 只用查找1次, 时间复杂度为O(1)
最坏情况:当key 在数列中的最后一个位置时, 需要查找n次, 时间复杂度为O(n)
平均情况:当key 在数列中的中间位置时, 时间复杂度为O(n / 2)
因为时间复杂度只用考虑n 的指数, 这里是1次, 所以这题的算法时间复杂度为O(n)
如果觉得对你有帮助的话:
👍 点赞,你的认可是我创作的动力!
🧡 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!