泛型希尔排序

简介: /** * 希尔排序 * * @param array * @param */ public static void sort(C[] array) { if (null == array || 1 >= array.
     /**
     * 希尔排序
     *
     * @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;
        }
    }
目录
相关文章
|
搜索推荐 算法 Java
选择排序算法:简单但有效的排序方法
在计算机科学中,排序算法是基础且重要的主题之一。选择排序(Selection Sort)是其中一个简单但非常有用的排序算法。本文将详细介绍选择排序的原理和步骤,并提供Java语言的实现示例。
211 1
选择排序算法:简单但有效的排序方法
|
7月前
|
存储 算法 搜索推荐
排序方法8大总结
排序方法8大总结
|
存储 搜索推荐 索引
排序算法 - 快速排序(4种方法实现)
排序算法 - 快速排序(4种方法实现)
63 0
|
存储 搜索推荐 测试技术
数据结构__<八大排序> __插入排序 |希尔排序 |选择排序 |堆排序 |快速排序 |归并排序(C语言实现)
数据结构__<八大排序> __插入排序 |希尔排序 |选择排序 |堆排序 |快速排序 |归并排序(C语言实现)
274 0
|
算法 搜索推荐 Java
JAVA实现常见排序算法 快速排序
JAVA实现常见排序算法 快速排序
122 0
|
搜索推荐 C++ 容器
(C/C++)STL函数和排序算法:快排以及归并排序
(C/C++)STL函数和排序算法:快排以及归并排序
(C/C++)STL函数和排序算法:快排以及归并排序
|
搜索推荐 算法 Java
【排序算法】Java实现9大排序算法及其速度对比(附详细代码)
【排序算法】Java实现9大排序算法及其速度对比(附详细代码)
122 0
排序方法、其他常用的方法
快速排序 function fast (arr) { if (arr.length <= 1) { return arr } let left = [] let right = [] let p = arr.
611 0