最简单的排序算法之一是插入排序算法。
插入排序利用的事实是位置0到位置P-1上的元素是已排序的。
其一般方法是:在第P趟排序中,我们将位置P上的元素向左移动到它在前P+1个元素的正确位置上。
一般定义一个方法,它有两个参数,分别为需要被排序的数组和数组长度N
1.运用for循环for(int p=1;p<N;p++)
2.在循环内部首先将a[p]赋值给一个临时变量tmp.
3.内部嵌套一个for循环for(j=p;j>0&&a[j-1]>tmp;j--),即前一个数存在且前一个数大于tmp,就将前一个数赋值给tmp对应的当前数组中的数,接着比较位减一,直到前面的所有数都小于tmp。
4.跳出子循环将tmp赋值给a[j],此时a[j]由于子循环的j--,其实已经变为上一个循环的a[j-1]了,即逻辑空位。
5.这样循环n-1回就排好所有的数了。
图为算法: