头歌C程序设计答案数组书后习题实现插入排序。 读入一个整数n,表示接下来要读入的n个整数, 1≤n≤100 然后对这n个整数进行插入排序(或者别的排序),输出排序后的结果以空格隔开 排序一般来说默认是从小到大排序,本题也是从小到大排序
时间: 2024-11-13 22:40:36 浏览: 134
插入排序是一种简单的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。以下是使用C语言实现插入排序的一个例子:
```c
#include <stdio.h>
void insertion_sort(int arr[], int n) {
for (int i = 1; i < n; i++) {
int key = arr[i];
int j = i - 1;
// 将arr[i]之前的所有元素都向右移动一位,直到找到合适的位置
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
// 插入key
arr[j + 1] = key;
}
}
int main() {
int n;
printf("请输入整数的数量(1-100): ");
scanf("%d", &n);
if (n < 1 || n > 100) {
printf("输入错误!请重新输入。\n");
return 1;
}
int arr[n];
printf("请输入 %d 个整数: ", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
insertion_sort(arr, n);
printf("排序后的结果: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在这个程序中,首先读取用户输入的整数数量和数组值,然后使用`insertion_sort`函数对数组进行排序,最后输出排序后的结果。
阅读全文