增量法-插入排序算法

闲暇时间,在看《算法导论》,在此做一点微薄的记录。

插入排序:伪代码

INSERTION-SORT(A)

    for j=2 to A.length

        key=A[ j ]

//insert A[ j ] into the sorted sequence A [ 1..j-1 ]

        i=j-1

        while i>0 and A[ i ]>key

            A[ i+1 ]=A[ i ]

            i=i-1

        A[ i+1 ]=key

 

初始化:循环的第一次迭代之前,它为真。

保持:如果循环的某次迭代之前它为真,那么下次迭代之前,它仍为真。

终止时为真。

 

然后,分析算法的效率。

在最好情况下,它是n的线性函数

在最坏和平均情况下,它是n的二次函数。n为输入规模。

 

该排序设计方式为增量法,即在排序子数组A[1..J-1]后,将单个元素A[ j ]插入子数组的适当位置,产生排序好的数组A[ 1…j ]

 

 

 

 

点赞