设计一个算法,输出在顺序表{3,6,2,10,1,8,5,7,4,9}中采用直接插入排序算法从小到大输出,并写出完整程序
时间: 2024-05-12 12:14:52 浏览: 85
算法流程:
1. 从第二个元素开始,依次将每个元素插入到前面已有序的序列中。
2. 对于每个待插入的元素,从后向前扫描已有序的序列,将比待插入元素大的元素都向后移动一个位置。
3. 找到待插入元素的插入位置后,将其插入到该位置。
程序实现:
```c
#include <stdio.h>
void insertSort(int arr[], int n) {
int i, j, temp;
for (i = 1; i < n; i++) {
temp = arr[i];
for (j = i; j > 0 && arr[j - 1] > temp; j--) {
arr[j] = arr[j - 1];
}
arr[j] = temp;
}
}
int main() {
int arr[] = {3, 6, 2, 10, 1, 8, 5, 7, 4, 9};
int n = sizeof(arr) / sizeof(arr[0]);
insertSort(arr, n);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果:
```
1 2 3 4 5 6 7 8 9 10
```
阅读全文