1查找的基本概念查找的定义:给定一个值K,在含有n个记录的文件中进行搜索,寻找一个关键字值等于K的记录,如找到则输出该记录;否则输出查找不成功信息
2线性查找线性查找又称顺序查找,是一种最简单的查找方法,它的基本思想是从第一个记录开始,逐个比较记录的关键字,直到和给定的K值相等,则查找成功;若比较结果与文件中n个记录的关键字都不等,则查找失败
3对分查找又称为跳跃式查找,假设记录是按关键字递增有序排列的,对分查找的基本思想是:先找到“中间记录”,比较其关键字与给定值K相等,则查找成功;如果关键字小于给定值K则说明被查找记录必在前半区间中;反之则在后半区间中
这样把搜索区间缩小了一半,继续进行查找
在算法中,设置一个下界指示器low和一个上界指示器high,它们分别指向待查文件搜索区间的头、尾
由low和high的值可以计算出“中间记录”位置,由mid表示
设顺序表r[1:n]的关键字项为r[i]
key(1≤i≤n)将K值r[mid]
key比较:若r[mid]
key=K2/9查找成功若r[mid]
key>K令high=mid-1,继续查找若r[mid]
key<K令low=mid+1,继续查找若low>high查找不成功假设记录的关键字为(5,13,17,42,46,55,70,94),现分别用K为55和12进行查找,查找过程如图2
70所示,其中(a)为K=55,查找成功;(b)为K=12,查找失败
对分查找算法如下:BINSERRCH(r,n,K)1
low←1;high←n//上下界指示器赋初值//2
while(lowr[mid]
key:low←mid+17