插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。下图是在百度百科中摘出的流程图。
通俗的说插入排序就是,首先选取一个位置,将待排序元素插入此位置,并与位置之前的元素比较大小,进行排序,一个萝卜一个坑的走下去,知道最后一个坑结束。
C++实现:
#include <iostream>
using namespace std;
int main()
{
int array[5]={3,1,2,5,4};
for(int i=1;i<5;i++)
{
for(int j=i;j>0;j--)
{
if(array[j]>array[j-1])
{
int tmp=array[j];
array[j]=array[j-1];
array[j-1]=tmp;
}
}
}
for(int i=0;i<5;i++)
cout<<array[i]<<" ";
cout<<endl;
return 0;