如果处理的数据量变大,冒泡法和插值法效率太低,二分法正好可以提高比较的速率
<script>
var arr = [3,2,23,4,9,1,44,34,9];
window.onload = function(){
var len = arr.length;
var left = 0, right = 0, point = 0; //定义三个标记位,point就是最中间的位置
var nArr = [];
nArr[0] = arr[0]; //定义一个数组后,把arr中第一个数先赋给nArr
for(var i=1; i<len; i++){
left = 0;
var nLen = nArr.length;
right = nLen;
for(var j=0; j<nLen; j++){
point = Math.floor((left + right)/2); //取整
if(nArr[point] < arr[i]){
left = point + 1; //注意必须加1