直接插入法,顾名思义,就是从n个需要排序的数值中,从第一个数开始,一遍一遍地与前一个数比较(一般第一个数不动,从第二个数开始),如果小于前一个数,就交换位置,再与前面一个数比较,以此类推,把它前面的数全部比较完。比如:第i个数一直要与它前面的(i-1)个数比较完,依次类推,直到n个数排序完毕。
它是一种最简单也最容易理解的排序方法,其代码如下:
这样,采用这种排序方法,要在R【0..i-1】中插入一个新元素,关键字的比较次数最少是一次,最多是i次(插入到最前面)元素的移动次数等于关键字比较次数加2,总的比较次数和移动次数计算:
最少比较n-1次,最多比较(1+2+...+(n-1))次;最少移动2(n-1)次,最多移动((1+2)+(2+2)+...+(n-1+2))次。算法的执行时间最坏情况是O(n^2)。
直接插入算法是稳定的。
本文介绍了一种简单的排序方法——直接插入排序。通过遍历待排序的数组,将每个元素与其前面的元素进行比较并交换位置,直至找到正确的位置。文章提供了具体的实现代码,并分析了该算法的时间复杂度。
265

被折叠的 条评论
为什么被折叠?



