c语言希尔排序法代码
时间: 2023-11-03 13:57:17 浏览: 122
当然,这里是希尔排序法的C语言代码示例:
```c
#include <stdio.h>
void shellSort(int array[], int n) {
int gap, i, j, temp;
for (gap = n/2; gap > 0; gap /= 2) {
for (i = gap; i < n; i++) {
temp = array[i];
for (j = i; j >= gap && array[j-gap] > temp; j -= gap) {
array[j] = array[j - gap];
}
array[j] = temp;
}
}
}
int main() {
int array[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(array)/sizeof(array[0]);
printf("Original array: \n");
for (int i=0; i < n; i++) {
printf("%d ", array[i]);
}
shellSort(array, n);
printf("\nSorted array: \n");
for (int i=0; i < n; i++) {
printf("%d ", array[i]);
}
return 0;
}
```
希尔排序是一种基于插入排序的排序算法,它通过比较相距一定间隔的元素来工作,然后逐步缩小间隔直到排序完成。在这个示例中,我们使用了希尔排序对数组进行升序排序,并打印出排序前后的结果。
希望对你有所帮助!如果有任何疑问,请随时提问。
阅读全文