#include <iostream>
using namespace std;
/*
插入排序的核心思想:
插入排序的思想就是先假定数组的前一部分是已经排好序的,然后将后面的数和前面的数进行比较找到插入的位置。
*/
void insertion_sort(int *array,int len)
{
int i,j;
int key;
for(j=1;j<len;j++)
{
key = array[j];
i = j-1;
while(i>=0&&array[i]>key)
{
// 这一步是用来将前面已经排好序的数组向后面移动
array[i+1] =array[i];
i--;
}
array[i+1] = key;
}
}
int main()
{
int array[]={5,2,4,6,1,3};
insertion_sort(array, 6);
for(int i=0;i<6;i++)
{
cout<<array[i]<<" ";
}
cout<<endl;
return 0;
}