/** * 希尔排序 * * @param array * @param <C> */ public static <C extends Comparable> void sort(C[] array) { if (null == array || 1 >= array.length) { return; } // 奇数补1,偶数不补 int skip = array.length / 2 + (array.length % 2 == 1 ? 1 : 0); while (skip >= 1) { for (int i = 0; i + skip < array.length; i++) { cas(array, i, i + skip); } skip /= 2; } } /** * 比较/交换值 * * @param array * @param a * @param b * @param <C> */ @SuppressWarnings("unchecked") private static <C extends Comparable> void cas(C[] array, int a, int b) { if (array[a].compareTo(array[b]) > 0) { C t = array[a]; array[a] = array[b]; array[b] = t; } } 继续阅读与本文标签相同的文章
上一篇 :
找找第k个数在第几堆里
下一篇 :
四色二维码
-
0724-6.2.0-CM接管rpm方式安装的无CM的CDH集群
2026-05-25栏目: 教程
-
golang插件化方案
2026-05-25栏目: 教程
-
Apache Submarine
2026-05-25栏目: 教程
-
Impala查询卡顿分析案例
2026-05-25栏目: 教程
-
谈谈网络通信服务器的结构应该如何设计
2026-05-25栏目: 教程
