概述
顺序查找的基本思想
顺序查找是一种最简单的线性查找方法。其基本思想是:从表的一端开始,顺序扫描线性表,依次将扫描到的关键字和给定值k相比较,若当前扫描到的关键字与k相等,则查找成功;若扫描结束后,仍未找到关键字等于k的记录,则查找失败。
最基本的顺序查找的算法
int SeqSearch(int str[],int n,int k)//k为待在str[]中查找的关键字
{
int i=0;
while (i<n && str[i]!=k) //从表头往后找
i++;
if(i>=n) //未找到返回0
return -1;
else return i+1; //找到返回逻辑序号i+1
}
为了提高查找速度,可以对上述算法进行改进,改进的顺序查找的基本思想:设置“哨兵”。哨兵就是待查值,将它放在查找方向的尽头处,免去了在查找过程中每一次比较后都要判断查找位置是否越界,从而提高了查找速度。例如如果查找方向是从左到右,则将待查值放在R[n]位置;如果查找方向是从右到左,则将待查值放在R[0]位置。当然前提是最后一个或第一个元素的位置不存放关键字。下面查找方向默认为从左到右。其算法如下:
int SeqSearch(int str[],int n,int k)
{/*在顺序表str[0…n-1]中查找关键字为k的记录 */
int i=0;
str[n]=k;
while(str[i]!=k) i++;
if (i<n) return i+1;
else return -1;
}
算法分析
查找算法的基本工作是关键字的比较,因此顺序查找算法的1时间复杂度为O(n)。顺序查找的算法简单、对存储结构没有要求,且对关键字的次序也无要求,但效率较低。
最后
以上就是感动魔镜为你收集整理的顺序查找(基本思想、改进算法)的全部内容,希望文章能够帮你解决顺序查找(基本思想、改进算法)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复