#include <stdio.h>
// 希尔排序函数
void shellSort(int arr[], int size) {
int i, j, gap, temp;
// 计算初始增量
gap = 1;
while (gap < size) {
gap = gap * 3 + 1; // Knuth 增量序列
for (i = gap; i < size; i++) {
// 当前待插入的元素
temp = arr[i];
// 与前面的元素比较,如果当前元素较小,则向前移动
j = i;
while (j >= gap && arr[j - gap] > temp) {
arr[j] = arr[j - gap];
j -= gap;
}
arr[j] = temp;
}
}
}
int main() {
int arr[] = {12, 34, 54, 2, 3};
int size = sizeof(arr) / sizeof(int);
shellSort(arr, size);
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
return 0;
}
标签:arr,temp,--,插入排序,gap,int,sizeof,升级版,size
From: https://blog.csdn.net/2301_81615161/article/details/140407804