查找技术

01-数据结构与算法 飞快学 358浏览

重点是掌握二分法查找的使用条件和执行原理。

查找的定义

查找:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素。

查找结果:(查找成功:找到;查找不成功:没找到。)

平均查找长度:查找过程中关键字和给定值比较的平均次数。

顺序查找

顺序查找是指在一个给定的数据结构中查找某个指定的元素。从线性表的第一个元素开始,依次将线性表中的元素与被查找的元素相比较,若相等则表示查找成功;若线性表中所有的元素都与被查找元素进行了比较但都不相等,则表示查找失败。

在下列两种情况下也只能采用顺序查找

(1) 如果线性表为无序表,则不管是顺序存储结构还是链式存储结构,只能用顺序查找。

(2) 即使是有序线性表,如果采用链式存储结构,也只能用顺序查找。

二分法查找

此考点考核比较多查找的比较次数,读者应该具体掌握二分查找法的算法。

二分法只适用于顺序存储的,按非递减排列的有序表,其方法如下:

设有序线性表的长度为n,被查找的元素为i,

(1) 将 i 与线性表的中间项进行比较;

(2) 若 i 与中间项的值相等,则查找成功;

(3) 若 i 小于中间项,则在线性表的前半部分以相同的方法查找;

(4) 若 i 大于中间项,则在线性表的后半部分以相同的方法查找。

对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次。