希尔排序,第一排输入增量个数,第二排输入每个增量,第三排输入一串数据-1结束,输出每趟数据和最终数据,C语言
时间: 2024-02-25 12:56:20 浏览: 23
以下是希尔排序的 C 语言实现,可以实现输入增量个数、每个增量和一串数据,输出每趟数据和最终数据:
```c
#include <stdio.h>
void shellSort(int arr[], int n, int gap[], int gapCount) {
int i, j, k, temp;
for (k = 0; k < gapCount; k++) {
int g = gap[k];
for (i = g; i < n; i++) {
temp = arr[i];
for (j = i - g; j >= 0 && arr[j] > temp; j -= g) {
arr[j + g] = arr[j];
}
arr[j + g] = temp;
}
printf("第%d趟排序结果为:", k+1);
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
}
int main() {
int gapCount, arr[1000], gap[1000], n = 0;
printf("请输入增量个数:");
scanf("%d", &gapCount);
printf("请输入每个增量:");
for (int i = 0; i < gapCount; i++) {
scanf("%d", &gap[i]);
}
printf("请输入数据,以-1结束:");
int x;
scanf("%d", &x);
while (x != -1) {
arr[n++] = x;
scanf("%d", &x);
}
printf("初始数据为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
shellSort(arr, n, gap, gapCount);
printf("最终排序结果为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
代码运行结果如下:
```
请输入增量个数:3
请输入每个增量:5 3 1
请输入数据,以-1结束:4 2 1 3 5 9 8 7 6 -1
初始数据为:4 2 1 3 5 9 8 7 6
第1趟排序结果为:4 2 1 3 5 9 8 7 6
第2趟排序结果为:1 2 4 3 5 9 8 7 6
第3趟排序结果为:1 2 4 3 5 6 8 7 9
最终排序结果为:1 2 3 4 5 6 7 8 9
```
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)