1.【基本思路】
(1)读人数据存放在a数组中。
(2)从第2个数开始,取出当前数作为待排序数,逐个与前面的数比较,若小于前面数,则前面数后移,当大等于前面数时,插人当前空出的位置。
(3)直到第n个数插入正确位置为止。
2.【代码】
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a[100],n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=1;i<n;i++)//从第2个数开始,取出当前数作为待排序数
{
int k,temp=a[i];
for(k=i;k>=0;k--)
{
if(a[i]>a[k])//找到小的数代表结束
break;
}
for(int c=i;c>=k+1;c--)//大的数都往后面移动一位ie
{
a[c]=a[c-1];
}
a[k+1]=temp;//将a[i]放入正确的位置
}
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
仅供参考!