希尔排序:
/**
* @author Jay
* @date 2020/7/12 19:51
* @Description:希尔排序
*/
public class shellSort {
public int[] ShellSortSimple(int[] a) {
for (int gap = a.length / 2; gap > 0; gap /= 2) {
for (int i = gap; i < a.length; i++) {
for (int j = i - gap; j > 0; j -= gap) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
return a;
}
//位移法改变,效率增加
public int[] ShellSort(int[] a) {
for (int gap = a.length / 2; gap > 0; gap /= 2) {
for (int i = gap; i < a.length; i++) {
int j = i - gap;
int temp = a[i];
if (a[j] > a[j + 1]) {
while (j >= 0 && temp < a[j]) {
a[j] = a[j + 1];
j -= gap;
}
a[j] = temp;
}
}
}
return a;
}
}