插入排序算法浅谈

来源:互联网 发布:linux finger不存在 编辑:程序博客网 时间:2024/05/18 00:05

最简单的排序算法之一是插入排序算法。

插入排序利用的事实是位置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回就排好所有的数了。

图为算法:

原创粉丝点击