任务描述
有15个数按小由到大顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数在数组中的下标。
相关知识
顺序查找法,不要求被查找的数组元素事先是有序排列的;折半查找要求被查数组是有序的。
若初始查找区间为R[low …… high]
,循环条件为low <= high
,首先选取位于数组中间mid
的元素,将其和待查找的数进行比较,如果它们的值相等,则查找成功,退出循环,否则根据比较的结果确定下次查找的范围是在数组的前半部分R[low …… mid-1]
还是后半部分R[mid+1 …… high]
,然后在新的查找范围内进行同样的查找,如此重复下去,直到查找成功或循环条件不满足退出循环。
测试说明
测试输入:19
预期输出:查找区间下界,上界,中间点[0,14,7]
查找区间下界,上界,中间点[0,6,3]
查找区间下界,上界,中间点[4,6,5]
查找成功,19的下标:5
测试输入:4
预期输出:查找区间下界,上界,中间点[0,14,7]
<