目录
希尔排序
一种插入排序(缩小增量排序)
1.分组冒泡
int[] arr = new int[] { 2, 5, 8, 9, 6, 3, 1, 4, 7 };
int temp;
for (int i = arr.length / 2; i > 0; i /= 2) {
for (int j = i; j < arr.length; j++) {
for (int j2 = j - i; j2 >= 0; j2 -= i) {
if (arr[j2] > arr[j2 + i]) {
temp = arr[j2 + i];
arr[j2 + i] = arr[j2];
arr[j2] = temp;
}
}
}
}
for (int j : arr) {
System.out.print(j + " ");
}
1 2 3 4 5 6 7 8 9
2.分组插入
int[] arr = new int[] { 2, 5, 8, 9, 6, 3, 1, 4, 7 };
int index;
int temp;
for (int i = arr.length / 2; i > 0; i /= 2) {
for (int j = i; j < arr.length; j++) {
temp = arr[j];
index = j;
if (arr[j] < arr[index - i]) {
while (index - i >= 0 && temp < arr[index - i]) {
arr[index] = arr[index - i];
index -= i;
}
arr[index] = temp;
}
}
}
for (int i : arr) {
System.out.print(i + " ");
}
1 2 3 4 5 6 7 8 9