#include <stdio.h>
// 希尔排序函数
void shellSort(int arr[], int n) {
int gap,i,j,temp;
// 初始化增量
for ( gap = n / 2; gap > 0; gap /= 2) {
// 进行希尔增量排序
for ( i = gap; i < n; i++) {
temp = arr[i];
// 将 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[] = {37, 23, 0, 17, 12, 72, 31, 46, 100, 88, 54};
int n = sizeof(arr) / sizeof(int);
shellSort(arr, n);
int i;
for ( i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
希尔排序--插入排序升级版
于 2024-07-13 22:26:36 首次发布