当前位置:编程学习 > JAVA >>

排序算法之希尔排序(JAVA)

[java] 
public class ShellSort {  
    /** 
     * 对于n个整数排序,将这列数按d1增量分组,对各个分组进行直接插入排序,然后缩小增量,重新分组,对分组排序,直到增量值为1时停止。 
     * 希尔排序是插入排序算法的一种。又称 缩小增量排序 时间复杂度为O(nlog n)  
     * 不稳定排序方式 
     * @param nums 待排序数组 
     * @return 输出有序数组 
     */     www.zzzyk.com
    public static void sort(int[] nums) {  
        int len = nums.length / 2;  
        while (len >=1) {  
            for (int i = 0; i < len; i++) {  
                // 直接插入排序对分组进行排序  
                for (int k = i; k < nums.length-len; k +=len) {  
                    int j = k + len;  
                    int temp = nums[j];  
  
                    while (k >= 0 && nums[k] > temp) {  
                        nums[j] = nums[k];  
                        k -= len;  
                        j -= len;  
                    }  
  
                    nums[j] = temp;  
                }  
            }  
            len = len/2;  
        }  
    }  
}  
 
补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,