以下是使用C语言实现希尔排序的代码示例,注释详细解释了每一步的逻辑:#include <stdio.h>
void shellSort(int arr[], int n) {
// 初始化间隔为数组长度的一半
int gap = n / 2;
while (gap > 0) {
// 对每个间隔进行插入排序
for (int i = gap; i < n; i++) {
int temp = arr[i];
int j = i;
// 在间隔为 gap 的元素中进行插入排序
while (j >= gap && arr[j - gap] > temp) {
arr[j] = arr[j - gap];
j -= gap;
}
arr[j] = temp;
}
// 缩小间隔
gap = gap / 2;
}
}
int main() {
int arr[] = {9, 5, 2, 7, 1, 3};
int n = sizeof(arr) / sizeof(arr[0]);
printf("原始数组:");
for (int i = 0; i < n; i++) {