希尔排序
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]
以上是关于希尔排序的主要内容,如果未能解决你的问题,请参考以下文章