希尔排序

匿名 (未验证) 提交于 2019-12-03 00:39:02
package Sort;  import java.util.Arrays;  public class ShellSort {      public static void main(String[] args) {         int[] a = { 54, 35, 48, 36, 27, 12, 44, 44, 8, 14, 26, 17, 28 };         sort(a);         System.out.println(Arrays.toString(a));     }      public static void sort(int[] a) {         // 设置步长,默认为数组长度的一半         int step = a.length / 2;         while (step >= 1) {             for (int i = step; i < a.length; i += step) {                 int tmp = a[i];                 int j;                 for (j = i; j > 0 && a[j - step] > tmp; j -= step) {                     a[j] = a[j - step];//元素后移                 }                 a[j] = tmp;//插入的位置,注意此时j在for循环中已经进行了一次--             }             step /= 2;         }     }  }

原文:https://www.cnblogs.com/yingpu/p/9266597.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!