就像打牌的时候把扑克牌排序一样 把a[i]插入到前i-1个已经排好序的序列当中 生成长度为i的序列 依次向后处理。
#include<iostream>
using namespace std;
int a[100],n;
int main()
{
cin>>n; //读入
for (int i=1;i<=n;i++) cin>>a[i];
for (int i=2;i<=n;i++)//排序 从2开始(明白。)
{
int p=i;
while (p>1&&a[p]<a[p-1]) {swap(a[p],a[p-1]);p--;}//向前找到合适的位置
}
for (int i=1;i<n;i++) cout<<a[i]<<" ";//输出
cout<<a[n]<<endl;
return 0;
}