您的位置:首页 > 其它

希尔排序 -- 算法小结

2017-09-08 15:21 197 查看
对于一个int数组,请编写一个希尔排序算法,对数组元素排序。

给定一个int数组A及数组的大小n,请返回排序后的数组。保证元素小于等于2000。

测试样例:

[1,2,3,5,2,3],6

[1,2,2,3,3,5]

解题思路 : 依次缩小步长直至步长为1

import java.util.*;

public class ShellSort {
public int[] shellSort(int[] A, int n) {
// write code here
if(A==null||n<2)
return A;
int feet = n/2;
int index = 0;
while(feet>0){
for(int i=feet;i<n;i++){
index = i;
while(index>=feet){
if(A[index]<A[index-feet]){
int tem = A[index];
A[index] = A[index-feet];
A[index-feet] = tem;
index-=feet;
}else{
break;
}
}
}
feet = feet/2;
}
return A;
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  希尔排序 算法