插入排序把记录插入到排序好的有序序列中,使整个序列依然有序。
算法流程:
把第i个数a从右向左与数b比较,若b>a,那么把b后移一个位子,直到b<a的时候,就把a插入序列中
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
void swap(int &a, int &b)
{
int k;
k = a;
a = b;
b = k;
}
void insert_sort(int*data, int n)
{
for (int i = 0;i < n;i++)
{
for (int j = i - 1;j >= 0;j--)
{
if (data[j + 1] > data[j])
break;
swap(data[j + 1], data[j]);
}
}
}
int main()
{
int data[10];
printf("请输入10个数: \n");
for (int i = 0;i < 10;i++)
scanf_s("%d", &data[i]);
insert_sort(data, 10);
printf("排序后的顺序是: \n");
for (int i = 0; i < 10;i++)
printf("%5d", data[i]);
system("pause");
return 0;
}
结果展示: