java常见排序算法——堆排序(附代码示列)

440 ℃
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常见排序算法——基数排序(附代码示列)

java常见排序算法——桶排序(附代码示列)

java常见排序算法——计数排序(附代码示列)

java常见排序算法——希尔排序(附代码示列)

java常见排序算法——归并排序(附代码示列)

标签: java排序算法, 堆排序

上面是“java常见排序算法——堆排序(附代码示列)”的全面内容,想了解更多关于 后端开发 内容,请继续关注web建站教程。

当前网址:https://m.ipkd.cn/webs_4260.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

css3+jquery手风琴式幻灯插件(支持IE平台请使用IE8以上浏览器)
html5代码如何禁止视频另存(android系统)
vue项目中如何配置babel转换代码
vuejs前端项目禁止用户调试(Vue项目防止被调试)
jquery如何获取img图片中的src属性