#include <stdio.h>
void shell_sort(int arr[], int len) {
int i, j, gap;
for (gap = len / 2; gap > 0; gap /= 2) {
for (i = gap; i < len; i++) {
int temp = arr[i];
for (j = i; j >= gap && arr[j - gap] > temp; j -= gap) {
arr[j] = arr[j - gap];
}
arr[j] = temp;
}
}
}
int main() {
int arr[] = {12, 34, 54, 2, 3, 4, 34, 56, 7, 9, 10, 12};
int len = (int) sizeof(arr) / sizeof(*arr);
shell_sort(arr, len);
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
C语言实现希尔排序
2024-03-16 12:46:04 59 阅读