文章目录
Java八种排序方式(四)
希尔排序
基本思想
先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量
,即所有记录放在同一组中进行直接插入排序为止。
算法实现
public class Xier_sort {
public static int[] shellSortSmallToBig(int[] data) {
int j = 0;
int temp = 0;
for (int increment = data.length / 2; increment > 0; increment /= 2){
for (int i = increment; i < data.length; i++) {
temp = data[i];
for (j = i - increment; j >= 0; j -= increment) {
if (temp < data[j]) {
data[j + increment] =data[j];
} else {
break;
}
}
data[j + increment] = temp;
}
System.out.println(Arrays.toString(data));
}
return data;
}
public static void main(String[] args) {
int[] test = {1,8,5,4,3};
System.out.println(Arrays.toString(shellSortSmallToBig(test)));
}