静态查找是指在静态查找表上进行的查找操作,查找满足条件的数据元素的储存位置或者各种属性。
静态查找有三种查找方式:顺序查找、折半查找和分块检索。分块检索下次再说。
- 顺序查找:
——顺序查找的查找表储存结构是线性表(顺序表或者链表)。
——查找过程是依次用查找条件中给定的值与查找表中的数据元素的关键字值进行比较。
——若某个记录的关键字值与给定的值相等,则查找成功,返回该记录的储存位置,反之,若直到最后一个记录,其关键字值与给定的值均不相等,则查找失败,返回查找失败的标志。
2.折半查找:
——折半查找只适用于对有序顺序表进行查找。
——每进行一次折半查找,要么查找成功,结束查找,要么将查找范围缩小一半,如此重复下去,直到查找成功或者查找范围缩小为空即查找失败为止。
——折半查找又称二分查找,是对有序的顺序表进行的高效查找方法。若初始查找区间为【1…n】,则将给定值k与当前查找区间的中点位置的关键字的比较,若相等则查找成功,否则当前查找区间缩小一半继续进行查找。
例如上面的例子,查找23,从low到high之间进行查找,mid为中间值,当开始查找时先用23与mid值比较,23<43所以取半部分继续比较一致重复,最后找到23。
代码如下: