流程图:
#include <stdio.h>
int main() //插入排序
{
int a[5] = { 64, 25, 12, 22, 11 };
int temp = 0;
// 打印原始数组
printf("原始数组:");
for (int j = 0; j < 5; j++) {
printf("%-3d", a[j]);
}
printf("\n");
// 插入排序
for (int i = 1; i < 5; i++) {
temp = a[i]; // 保存当前要插入的元素
int j = i - 1;
// 将大于temp的元素向后移动
while (j >= 0 && a[j] > temp) {
a[j + 1] = a[j];
j--;
}
a[j + 1] = temp; // 在正确的位置插入temp
// 打印每轮排序后的结果
printf("第%d轮:", i);
for (int k = 0; k < 5; k++) {
printf("%-3d", a[k]);
}
printf("\n");
}
// 打印最终结果
printf("排序后:");
for (int j = 0; j < 5; j++) {
printf("%-3d", a[j]);
}
printf("\n");
return 0;
}
运行结果: