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

算法思想:

将序列A[1…n]看成一个有序表A[1…i-1]和一个无序表A[i…n]。初始时,有序表中只含有第一个元素,无序表中含n-1个元素。每次都取无序表的第一个元素A[i],将其插入到有序表A[1…i-1]的恰当位置,形成新的有序表,重复n-1次即可完成排序。

算法伪代码

INSERTION-SORT(A,n)

 1.      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)=c1+c2+c3+c4+c5+c6+c7
对于同一序列而言,n固定,而t(j)大小会影响T(n)
数组已经排好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值