活动地址:CSDN21天学习挑战赛
折半查找
排序含义
了解一个知识,必须先要从其含义开始。
折半查找,又称二分法查找。意在一个有序的序列当中,从最大值与最小值开始,从两个值的中间值为分渠道,再次判断是否位于区间内,重复获取中间值,直至找到需要查找的值。
折半查找,适用于数据量很大的情况。
具体是什么意思呢,一个例子搞定:数字炸弹游戏
一个1-100的数字,其中有一个数字是炸弹,每次猜一个数,怎么样才能猜出最快呢。排除运气成分,用二分法可以最快猜出这个数字炸弹。利用二分法为大家演示。假如炸弹是28
在1-100,中,首先猜50,错误。区间来到【1-50】,再次猜数字25,区间来到【26-49】。回答错误,再一次猜数字等等等,直到猜出数字28。这就是二分法中次数最长的一种。
直到此,大概对与折半查找有这一定的理解了。
排序图例
选择一个1-100的有序区间(数字炸弹为28)
一定是要有序的区间
第一次查找
猜数字50
区域变为
第二次查找
猜数字25
区域变为
以此往下,第n次查找到数字
找到数字炸弹28;
代码实现
定义一个数组
必须是有序数组,必须是有序数组,必须是有序数组,重要的事情说三遍!!!
var arr=[6,10,12,23,43,