插入排序法
一.基本原理
1.算法思路:第n次排序将前n个数先进行排序;
2.算法分析
1. 设数组为a[n];
2. 第i趟排序将序列中的第i+1个元素插入到前面已经排序好的含有i个元素的子序列中;
3. 得到一个长度为i+1的有序子系列;
4. 重复2,3
二.数据演示
例如:一个数据序列:49,38,65,97,76,13,27,49;
假设经过3趟排序以后,排成如下(粗体为已排好):38,49,65,97, 76,13,27,49
现在第四趟排序将第五个数76插入到前面的数据之中;
排成:38,49,65,76,97, 13,27,49
三.代码实现
void InsertionSort(int a[],int n)//插入排序
{
cout<<"插入排序输出:"<<endl;
int i,j,k,tmp;
for(i=1;i<n;++i)
{
for(j=0;j<i;++j)
if(a[j]>a[i]){
tmp =a[i];
for(k=i;k>j;--k)
a[k]=a[k-1]; //往后移
a