希尔排序,输入增量个数,每个增量,一串数据-1结束,输出每趟数据和最终数据,C语言
时间: 2024-02-25 14:55:57 浏览: 26
好的,以下是希尔排序的 C 语言实现,满足你的要求:
```c
#include <stdio.h>
void shell_sort() {
int n, inc, i, j, temp;
int data[100];
// 输入增量个数
printf("请输入增量个数:");
scanf("%d", &n);
int increments[n];
// 输入每个增量对应的一串数据
for(i = 0; i < n; i++) {
printf("请输入第%d个增量:", i+1);
scanf("%d", &inc);
increments[i] = inc;
printf("请输入第%d个增量对应的数据,以-1结束:", i+1);
int k = 0;
while (1) {
scanf("%d", &temp);
if (temp == -1) {
break;
}
data[k++] = temp;
}
// 希尔排序
for(j = inc; j < k; j++) {
temp = data[j];
int m = j;
while (m >= inc && data[m-inc] > temp) {
data[m] = data[m-inc];
m -= inc;
}
data[m] = temp;
}
// 输出每个增量对应的排序结果
printf("增量为%d的排序结果:", inc);
for (j = 0; j < k; j++) {
printf("%d ", data[j]);
}
printf("\n");
}
// 输出最终排序结果
printf("最终排序结果:");
for (i = 0; i < 100; i++) {
if (data[i] == 0) {
break;
}
printf("%d ", data[i]);
}
}
int main() {
shell_sort();
return 0;
}
```
你可以直接复制这段代码并编译运行,按照提示输入相关信息即可得到每个增量对应的排序结果和最终排序结果。希望对你有所帮助!
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)