折半插入排序

var arr = [38,49,65,97,76,13,27,49];

var BIN_INSERTSORT = function(arr){
  var i, j,temp,low,mid,high;
  var n = arr.length;
  for( i = 1;i<=n-1;i++){
    temp = arr[i];
    low = 0;
    high = i-1;
    while(low<=high){
      mid = Math.floor((low+high)/2);
      if(temp<arr[mid]){
        high = mid-1;
      }else{
        low = mid+1;
      }
    }
    for (j=i-1;j>=low;j--){
      arr[j+1] = arr[j];
    }
    arr[low] = temp;
  }
}

BIN_INSERTSORT(arr);
console.log(arr);

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。