线性表的查找-折半查找/二分查找/对分查找
折半查找概念
折半查找,也称为二分查找,是一种在有序数组中查找特定元素的高效算法。
其基本思想是:首先确定整个查找区间的中间位置,即 mid = (left + right) / 2,然后使用要查找的值 key 与中间位置的元素进行比较。
如果 key 等于中间元素,则查找成功,返回该元素的存储位置;
如果 key 大于中间元素,则在数组的右半部分继续查找;
如果 key 小于中间元素,则在数组的左半部分继续查找。
每次比较都使搜索范围缩小一半,因此查找效率较高。
需要注意的是,折半查找要求待查表为有序表,且插入和删除操作困难。
查找过程
每次将待查记录所在的区间缩小一半
查找过程:
注意:在做查找的过程中,如果 low 指针和 high 指针的中间位置在计算时位于两个关键字中间,即求得 mid 的位置不是整数,需要统一做取整操作。
折半查找算法: (非递归算法)
设表长为n,low、high和mid分别指向待查元素所在区间的上界,下界和中点,key为给定的要查找的值
初始时,令low=1,high=n,mid=(low+high)/2
让k与mid指向的记录比较
若key==R