活动地址:CSDN21天学习挑战赛
CSDN—21天学习挑战赛—【经典算法】
思路:
1.将数组折半,分成左右两个数组。
2.判断要查找的数和中间位置数值的大小,来判断要查找的数实在哪一半。
3.之后继续折半查找,直至找到这个数。
折半插入排序算法的时间复杂度为O(n^2)
1 function search(arr,key) {
2 var low=0;
3 var height=arr.length-1;
4 var mid;
5 while(low<=height){
6 mid=Math.floor((low+height)/2);
7 if(arr[mid]==key){
8 return mid;
9 }else if(arr[mid]<key){
10 low=mid+1;
11 }else{
12 height=mid-1;
13 }
14 }
15 return -1;
16 }
是通过特定的算法因式将一组或多组数据按照既定模式进行重新排序。 最终序列按照一定的规律进行呈现。