这是一个对少量元素排序的有效算法,工作机理与很多人打算时,整理手中牌时的做法差不多,摸起一张牌,为了找到这张牌的正确位置,将它与手中已有的每一张牌从右到左地进行比较。
#include <iostream>
using namespace std;
int main()
{
cout<<"要排序数组长度:";
int n;
cin>>n;
cout<<endl<<"输入数组的"<<n<<"个值:";
int * a=new int[n];
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=1;i<n;i++)
{
int t=a[i];
int j;
for(j=i-1;j>=0;j--)
{
if(a[j]<=t)
break;
a[j+1]=a[j];
}
a[j+1]=t;
}
cout<<endl<<"排序后:"<<endl;
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}