算法简单,就不描述了,直接看注释吧
#include "iostream"
#define MAX_SIZE 10 //假设10个数字排序
using namespace std;
int main(){
int a[MAX_SIZE];
cout << "init 数组" << endl;
for (int i = 0; i <MAX_SIZE;i++) //自己随便输入
{
cin >> a[i];
}
for (auto c : a) //遍历输出,查看正确性
cout << c << " ";
cout << endl;
int i, j;
int temp; //定义一个变量,用于交换存储临时值
for ( i = 1; i < MAX_SIZE; i++) //从数组第二个开始比较,默认第一个是有序的
{
temp = a[i]; //保留当前待排序的数值
for ( j = i - 1; j >= 0; j--)
{
if (temp < a[j]) //如果要插入的数据小于有序的,则有序的向右调整
{
a[j + 1] = a[j];
}
else //找到插入点,结束内层循环
break;
}
a[j + 1] = temp; //j+1 才是插入的点
}
for (auto c : a)
cout << c << " ";
cout << endl;
system("pause");
return 0;
}