1、基本思想,在要排序的一组数中,假定前面n-1(n>=2)个数字已经排好序,将第n个数加入,使得前n个数字都有序。如此循环n-1次,则前n个数字都有序了。
2、实现。
int main()
{
int a[10]={11,42,53,25,36,6,75,8,26,4};
std::cout<<"before sort:"<<std::endl;
for(int i=0;i<10;++i)
std::cout<<a[i]<<"\t";
std::cout<<std::endl;
//0.从第二个元素起
for(int i=1;i<10;++i)
{
int temp=a[i];
int pos=-1;
for(int j=i-1;j>=0;--j)
{
if(a[j]>a[j+1])
{
std::swap(a[j],a[j+1]);
pos=j;
}
}
a[pos]=temp;
}
std::cout<<"after sort:"<<std::endl;
for(int i=0;i<10;++i)
std::cout<<a[i]<<"\t";
std::cout<<std::endl;
return 0;
}
3、运行结果。