function sort_heap(arr){ var temp; var n = arr.length; for(var i = parseInt(n/2-1);i>=0;i--){ Adjust(arr, i, n); } for(var i = n-1;i > 0;i--){ temp = arr[0]; //交换根节点与最后一个叶子节点,要调整的范围减1 arr[0] = arr[i]; arr[i] = temp; Adjust(arr, 0, i); //不断减小长度、 交换、调整 } return arr; } function Adjust(arr,i,n){ var j = 2*i+1; var temp = arr[i]; while(j<n){ if(j<n-1 && arr[j]<arr[j+1]){ j++; } if(temp >= arr[j]){ break; } arr[parseInt((j-1)/2)] = arr[j]; j = j*2+1; } arr[parseInt((j-1)/2)] = temp; }
本文分享自微信公众号 - 交互设计前端开发与后端程序设计(interaction_Designer),作者:周立
原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。
原始发表时间:2015-12-05
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句