一、二分查找和普通查找的優缺點
普通查找:原理簡單,不需要數組有序;當元素個數很大時候,效率較低;
二分查找,需要數組有序排列,但是查找效率高;
二、二分查找實現
//查找指定元素在循序數組中的索引
function binary_search(arr,key){ var low=0, high=arr.length-1; while(low<=high){ //重新計算中間項索引位置 var mid=parseInt((high+low)/2); if(key==arr[mid]){ return mid; }else if(key>arr[mid]){ low=mid+1; }else if(key<arr[mid]){ high=mid-1; }else{ return -1; } } }; var arr=[1,2,3,4,5,6,7,8,9,10,11,12,15,29]; console.log(binary_search(arr,10));//9
三、快速排序
function quickSort(arr){ if(arr.length <= 1){ return arr; } var baseIndex = Math.floor(arr.length/2); var baseVal = arr.splice(baseIndex,1)[0];//基准元素 var left = []; var right = []; for(var i=0,len=arr.length; i<len; i++){ if(arr[i] <baseVal){ left.push(arr[i]); }else{ right.push(arr[i]); } } return quickSort(left).concat([baseVal],quickSort(right)); } var arr2 = [1,35,1,45,2,4,65,3,3,4,5,6,6,6]; console.log(quickSort(arr2));