一维数组——二分法查找学生成绩
发布时间
阅读量:
阅读量
小标题
对于一个长度为N且已按升序排列的数组a,采用二分查找法寻找特定数值,若成功定位则输出该数值在数组中的具体位置;若未能找到,则返回“未找到”的提示信息。
分析:
二分法查找是一种广泛应用于有序数组中实现高效检索的典型算法。
研究思路阐述
- 设low与high分别表示查找区域的起始与终止下标,初始时low被设定为0,high则为N-1;
- 确定当前查找区间中位元素的下标,计算方式为x=(low+high)/2,并依据a[x]与输入值m的比较结果来判断后续的查找范围;
- 当m大于a[x]时,只需在a[x]之后的元素中继续查找,并将查找区间的下界调整为x+1;
- 若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)
还没有任何评论哟~
