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

385 ℃

希尔-冒泡排序(慢)

public void shellBubbleSort(int[] nums){
  for (int step = nums.length/2; step > 0 ; step /= 2) {
    for (int i = step; i < nums.length; i++) {
      for (int j = i-step; j >= 0; j -= step) {
        if(nums[j] > nums[j+step]){
          int temp = nums[j];
          nums[j] = nums[j+step];
          nums[j+step] = temp;
        }
      }
    }
  }
}

希尔-插入排序(快)

public void shellInsertSort(int[] nums){
  for (int step = nums.length/2; step > 0; step /= 2) {
    for (int i = step; i < nums.length; i++) {
      int j = i;
      int insertNum = nums[i];
      while(j-step >= 0 && nums[j-step] > insertNum){
        nums[j] = nums[j-step];
        j-=step;
      }
      nums[j] = insertNum;
    }
  }
}

PS:引入步长减少数字交换次数提高效率

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

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

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

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

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

标签: java排序算法, 希尔排序

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

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

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

php数组及对象介绍
旅游摄影类网站模板(html+css+jquery)
js如何实现数组合并(concat函数用法)
如何在MySQL中获取上月的第一天?
jquery增加父标签用什么方法(wrap)