比如有个堆数据位置分别用0 1 2 3 4 5 6 7 8 9 来表示
插入排序的思想就是:
第一次假设0位置已经排好了
第二次就要把1位置插入已经排行队列(其实这时队列只有0位置),所以只要和0比较。小的放在前面
经过这次插入0 和1位置已经排好了
第三次就要把2位置插入上面已经排好了的队列中,这时2位置的数据从后面比较开始,首先和1位置再,如果大于1位置的就直接放在2位置不用比教了。。否则(1位置和2位数据交换)就再和0位置比较(这次队列中就有3个已经排好的数据了)
第四次就要把4位置插入队列中。4首先和3比较,如果4大于3位置的就直接放在4位置,结束。。负责3和4位置的数据交换。。再用2和3位置比较。。。
一直下去插入排序就是这样了。。
程序看以看这位帅哥的:
http://blog.csdn.net/feixiaoxing/article/details/6844826