二分查找
1.二分查找的定义 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。 折半查找要求 线性表必须采用顺序存储结构 ,而且表中元素 按关键字有序排列 。 2.查找的过程 (1)假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功; (2)否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。 (3)重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。 (1)C和C++代码(C和C++的语法基本相同) 循环实现之第一种 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 int int { //在有序表R[0..n-1]中进行二分查找,成功时返回结点的位置,失败时返回-1 int //置当前查找区间上、下界的初值 while (low<=high) { if (R[low].key==K) return low; if (R[high].key==k) return //当前查找区间R[low..high]非空 mid=low+(high-low)/2; /*使用(low+high)/2会有整数溢出的问题 (问题会出现在当low