线性表查找
查找的基本概念:广义地讲:查找是在具有相同类型的记录构成的集合中找出满足给定条件的记录。给定的查找条件可能是多种多样的,为了便于讨论,我们把查找条件限制为"匹配",即在查找关键码等于给定值的记录。
线性表的查找技术:在线性表中进行的查找属于静态查找。线性一般有两种存储结构:顺序存储和链式存储结构,此时可以采用顺序查找技术;对顺序存储结构,若记录已按照关键码有序,可采用更高效的查找技术-----折半查找技术!
顺序查找:顺序查找又称线性查找,是最基本的查找技术之一,其基本思想为:从线性表的一端向另外一端逐个将关键码与给定的值比较。肉相等,则查找成功,给出该记录在表中的位置;若整个表检测完扔未赵大鹏与给定值相等的关键码,则查找失败,给出失败信息。
线性表的顺序查找:介绍一种改进的算法:设置“哨兵”。哨兵就是待查找的值,将它放在查找方向的“尽头处”,免去了在查找过程中每一次比较后都要判断查找位置是否越界,从而提高查找速度。
查找代码如下:
/** * 折半查找的递归算法 */public int BigSearch2(int r[],int low,int high,int k){ if(low>high) return 0; else{ int mid=(low+high)/2; if(k<r[mid]) return BigSearch2(r,low, mid-1, k); else if(k>r[mid]) return BigSearch2(r,mid+1, high, k); else return mid; }}