Advertisement

一维数组——二分法查找学生成绩

阅读量:

小标题

对于一个长度为N且已按升序排列的数组a,采用二分查找法寻找特定数值,若成功定位则输出该数值在数组中的具体位置;若未能找到,则返回“未找到”的提示信息。

分析:

二分法查找是一种广泛应用于有序数组中实现高效检索的典型算法。

研究思路阐述

  1. 设low与high分别表示查找区域的起始与终止下标,初始时low被设定为0,high则为N-1;
  2. 确定当前查找区间中位元素的下标,计算方式为x=(low+high)/2,并依据a[x]与输入值m的比较结果来判断后续的查找范围;
  3. 当m大于a[x]时,只需在a[x]之后的元素中继续查找,并将查找区间的下界调整为x+1;
  4. 若m小于a[x],则只需在a[mid]之前的元素中继续查找,并将查找区间的上界设置为x-1;重复执行第2与第3步直至找到目标元素x;或当查找区间不再存在(即low大于high)时结束。

要点:

1.循环查找过程存在两种情形:
☞当在某一轮查找中成功匹配到目标值时,满足条件m==a[x]
☞当完成全部查找步骤仍未发现目标值时,出现low>high的情况
2.二分查找算法仅能应用于已排序的数组结构

代码实现与功能验证

复制代码
    #include<iostream>
    #include<stdlib.h>

全部评论 (0)

还没有任何评论哟~