任务描述
本关任务:使用折半方法查找数组中某元素的索引,并统计出查找次数。
相关知识
顺序查找:
顺序查找就是从数组的第一个元素开始,依次比较,直到找到目标数据或查找失败。
顺序查找举例:查找数组中是否存在值 432。
输出结果:
目标值的索引为:
7
折半查找:
能使用折半查找的前提是数组中的数据是有序的。
折半查找的原理:
假设查找的数组区间为 [min,max],min 代表起始索引,max 代表结束索引,T 代表需要查找的值。
-
第一步:确定该区间的中间位置 K;
-
第二步:将查找的值 T 与 array[k] 比较。若相等,查找成功返回此位置;否则确定新的查找区域,继续折半查找;
-
第三步:若 array[k]>T&