知识框架
知识点详解
No.1
顺序查找
Q:什么是顺序查找呢? A:顺序查找的原理很简单,就是遍历整个列表,逐个进行比较,若某个关键字和给定值相等,则查找成功。如果直到最后一个记录,其关键字和给定值比较都不等时,则查找失败。 顺序查找一般分为两种:对一般的无序线性表的顺序查找和对按关键字有序的顺序表的顺序查找。下面,分别来讨论这两种顺序查找方法。 ✔ 对一般无序线性表的顺序查找『实现算法』typedef struct
{
//查找表的数据结构
ElemType *elem; //元素存储空间基址,建表时按实际长度分配,0号单元留空
int TableLen; //表的长度
}SSTable;
int Search_Seq(SSTable ST , ElemType key)
{
ST.elem[0]=key; //哨兵
for(i =ST . TableLen;ST.elem[i) !=key ; --i); //从后往前找
return i; //若表中不存在关键字为key的元素,则找到i为0时退出 for 循环
}
上述代码中有一个“哨兵”。通俗来讲,设置哨兵是为了在循环查找时数组不会越界(不管有没有找到,当i=0时必定会退出循环)。设置哨兵也可以使程序不许要多余的判断,从而达到提高程序效率的目的。
查找过程:查找元素(Key):1