【实例描述】
原理:对数组的前某个数量元素进行比较,将其最大元素置于最前,其实现过程如图:

【实现过程】
定义函数InsertSort()实现直接插入排序算法,定义int型数组变量a作为目标排序数组,代码如下:
#include<iostream>
using namespace std;
#define M 11 //定义数组的大小
void InsertSort(int a[])
{
cout<<"排序过程:"<<endl;
int temp;
int i,j;
for(i=0;i<M;i++)//这个循环用来实现对其i个元素进行比较大小后的排序,直到对M-1个元素进行排序
{
temp=a[i];
for(j=i;i>0&&a[j-1]>temp;j--)//如歌这两个条件不能同时满足,不能交换相邻元素值
a[j]=a[j-1];
a[j]=temp;//比较值只能赋给最后参与交换的a[j]元素
for(int k=0;k<M;k++)
cout<<a[k]<<" ";
cout<<endl;
}
}
void main()
{
cout<<"-----------插入排序------------"<<endl;
int a[M]={0,209,386,768,185,247,606,230,834,54,121};
cout<<"排序之前的元素为:
";
for(int i=0;i<M;i++)
cout<<a[i]<<" ";
cout<<endl;
InsertSort(a);
cout<<"排序结果为:
";
for(i=0;i<M;i++)
cout<<a[i]<<" ";
cout<<endl;
}