Advertisement

算法设计与分析:插入排序

阅读量:

算法思想:

我们可以将序列A视为由有序部分A[1\ldots i-1]和无序部分A[i\ldots n]组成。\n初始化时,在有序区域仅存有第一个元素,在无序区域则包含剩余的n-1个元素。\n每次操作均取当前无序区的第一个记录项A[i].\n然后将其恰当地插入到当前有序区域中的适当位置。\n经过这样的操作共需n-2次即可完成整个排序过程。\n

算法伪代码

INSERTION-SORT(A,n)

复制代码
      for  j←2 to n
     2.           do  key←A[j]
     3.           i←j-1
     4.           while i>0 and A[j]>key
     5.                    do A[i+1]←A[i]
     6.                   i←i-1
     7.          A[i+1]=key

算法时间复杂度的分析

对应行的代价 次数
c1 n
c2 n-1
c3 n-1
c4 ∑t(j)
c5 ∑(t(j)-1)
c6 ∑(t(j)-1)
c7 n-1

由此可得T(n)等于c_1c_7各项之和;在同一个序列中

全部评论 (0)

还没有任何评论哟~