您的位置:首页 > 其它

【动手写排序】希尔排序

2015-07-03 20:55 253 查看
import org.junit.Test;

public class ShellInsertSort {

public void sort(int[] arr){

int increment=arr.length/2;

while(increment>0){

for(int i=0;i<increment;i++){

for(int j=i+increment;j<arr.length;j+=increment){

int k=j;

while(k>i && arr[k]<arr[k-increment] ){

swap(arr,k,k-1);

k-=increment;

}

}

}

increment/=2;

}

}

public void swap(int[] arr,int i,int j){

int temp=arr[i];

arr[i]=arr[j];

arr[j]=temp;

}

@Test

public void test(){

int[] arr={9,8,7,6,4,5,3,1,2};

// int[] arr={4};

sort(arr);

for(int i:arr){

System.out.print(i+" ");

}

}

}

复杂度:O(n3/2)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: