
public void heapSort2(int[] nums) {
for(int i = nums.length/2-1; i >= 0; i--){
sift(nums, i, nums.length);
}
for (int i = nums.length-1; i > 0; i--) {
int temp = nums[0];
nums[0] = nums[i];
nums[i] = temp;
sift(nums, 0, i);
}
}
private void sift(int[] nums, int parent, int len) {
int value = nums[parent];
for (int child = 2*parent +1; child < len; child = child*2 +1) {
if(child+1 < len && nums[child+1] > nums[child]){
child++;
}
if(nums[child] > value){
nums[parent] = nums[child];
parent = child;
} else {
break;
}
}
nums[parent] = value;
}
PS:大顶堆实现升序,每次将最大值移到堆的最后一个位置上
上面是“java常见排序算法——堆排序(附代码示列)”的全面内容,想了解更多关于 后端开发 内容,请继续关注web建站教程。
当前网址:https://m.ipkd.cn/webs_4260.html
声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

photoshop技巧:如何将人物照片转变成古典工笔画效果
搬书匠官网首页入口:一个专注于计算机电子书籍下载的网站
Uknow.AI