插入排序
###### 简单介绍
- 将整个数组分为有序和无序的两部分,有序在前,无序在后。
- 开始有序及只有a[0],其余都是无序的
- 每次将无序部分第一个元素取出,插入到有序部分中去。假设,插入到合适位置P,
- 则原位置及其后面的有序元素都要后移一个位子。
- 直到无序部分没有元素
代码实现:
void insertionSort(int a[],int size)
{
for (int i=1;i<size;++i)// 循环无序部分,a[i]是最左边的无序元素,每次循环将a[i]放到合适位置。
for(int j=0;j<i;++j)//在0到i-1之间找a[i]的合适位置
if(a[j]>a[i]){
//要把a[i]放到位置j,原下标j到i-1的元素要往后移一位。
int tmp=a[i];
for(int k=i;k>j;--k)
a[k]=a[k-1];
a[j]=tmp;
break;
}
}