希尔排序

Posted Qunar_尤雪萍

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了希尔排序相关的知识,希望对你有一定的参考价值。

希尔排序

/**
 * 希尔排序
 * Created by xueping.you on 15-8-18.
 */
public class DonaldShellSort 
    private final static Logger logger = LoggerFactory.getLogger(DonaldShellSort.class);


    public static void donaldShellSort(int []arr)
        for(int step=arr.length/2; step>0; step/=2)
            for (int index=step; index<arr.length; index++)
                int temp = arr[index];
                int i = index;
                for(int j=index-step; j>=0; j-=step) //对按照步长分割出来的子串做插入排序
                    if(arr[j]>temp)
                        arr[i] = arr[j];
                        arr[j] = temp;
                        i=j;
                    
                
            
        
    

    public static void main(String []args)
        int [] array = new int[]12,10,2,45,31,56,1,9;
        logger.info("before:", array);
        donaldShellSort(array);
        logger.info("after:",array);

    

result:
20:18:37.765 [main] INFO c.q.data.arithmetic.DonaldShellSort - before:[12, 10, 2, 45, 31, 56, 1, 9]
20:18:37.782 [main] INFO c.q.data.arithmetic.DonaldShellSort - after:[1, 2, 9, 10, 12, 31, 45, 56]

以上是关于希尔排序的主要内容,如果未能解决你的问题,请参考以下文章

希尔排序

希尔排序

希尔排序

6.4 希尔排序

希尔排序

基础排序算法三——希尔排序