C语言使用插入排序实现对数组A[8] = {16,25,5,8,13,1,10,3}升序排列。
时间: 2024-11-15 18:20:04 浏览: 1
关于数组的插入与删除以及排序
C语言中的插入排序算法是一种简单直观的排序方法,它的工作原理类似于打扑克牌时的整理过程。对于给定的数组A[8]={16, 25, 5, 8, 13, 1, 10, 3},插入排序的步骤如下:
1. 从第二个元素开始遍历数组(索引i=1),将当前元素视为"待插入"的数。
2. 将"待插入"的数与前面已排序的部分进行比较,找到第一个大于它的已排序位置(假设为j)。
3. 如果j等于0(即"待插入"的数小于数组的第一个元素),则直接将其放在第一位,然后j自增1继续查找。
4. 若j不等于0,则将已排序序列中的元素依次向右移动一位,腾出空间。
5. 直到找到合适的位置,将"待插入"的数放进去。
6. 重复以上步骤,直到所有元素都按照升序排列。
下面是C语言实现的伪代码示例:
```c
#include <stdio.h>
void insertionSort(int A[], int n) {
int i, key, j;
for (i = 1; i < n; i++) {
key = A[i];
j = i - 1;
// 将元素逐个移至其正确位置
while (j >= 0 && A[j] > key) {
A[j + 1] = A[j];
j = j - 1;
}
A[j + 1] = key;
}
}
int main() {
int A[] = {16, 25, 5, 8, 13, 1, 10, 3};
int n = sizeof(A) / sizeof(A[0]);
insertionSort(A, n);
printf("Sorted array is:\n");
for (int i = 0; i < n; i++)
printf("%d ", A[i]);
printf("\n");
return 0;
}
```
运行此程序后,你将看到数组A按升序排列的结果。
阅读全文