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://ipkd.cn/webs_4260.html
workflows工作流
一条闪闪发光的金鱼ComfyUI工作流
一张严重受损的宇宙飞船的照片ComfyUI工作流
1个很漂亮的单身小女孩ComfyUI工作流
一艘来自工业时代的飞船ComfyUI工作流
一个戴着破旧莎草帽的机械忍者
一幅生动而古怪的时尚鸭子插图ComfyUI工作流
一条精致透明的朱红色水晶龙
一朵在晨光中带着露珠的蓝玫瑰
猜你喜欢
声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!