首页 > 编程语言 > 详细

js实现堆排序

时间:2015-12-12 15:17:26      阅读:250      评论:0      收藏:0      [点我收藏+]

<script type="text/javascript">
var arr = [22, 31, 1, 9, 99, 68, 55, 30];
function heap_adjust(arr, start, end){
  var temp = arr[start],
  j = start*2;
  for(;j < end; j *= 2){
    if(arr[j] < arr[j+1]){
      j++;
    }
    if(temp > arr[j]){
      break;
    }
    arr[start] = arr[j];
    start = j;
  }
  arr[start] = temp;
}
function heap_sort(arr){
  var len = arr.length;
  for(var i = len/2; i >= 0; i--){
    heap_adjust(arr, i, len);
  }
  for(var i = len; i > 0; i--){
    swap(arr, 0, i -1);
    heap_adjust(arr, 0, i - 2);
  }
}
function swap(arr, i, j){
  var temp = arr[i];
  arr[i] = arr[j];
  arr[j] = temp;
}
heap_sort(arr)
console.log(arr);
</script>

js实现堆排序

原文:http://www.cnblogs.com/fengfengtk/p/5041156.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!