插入排序——平均算法复杂度分析

@CopyLeft by ICANTHI Can do ANy THing that I CAN THink!~

Author:WenHui,WuHan University,2012-6-12

 

 PDF版下载地址http://www.docin.com/p1-422100846.html

 

一、程序源码(Python)

clip_image002[6]

 

二、算法分析

由于该算法简单,故仅分析其平均复杂度,其平均复杂度为:

clip_image004[6]

平均分析

·比较次数

假设插入第clip_image006[14]个元素时,其插入位置为clip_image008[22],1 <= clip_image008[23] <= K。其需比较clip_image010[6]次,故其平均比较次数为:

clip_image012[6]

插入N个元素时,算法总平均比较次数为:

clip_image014[6]

·赋值次数

假设插入第clip_image006[15]个元素时,其插入位置为clip_image008[24],1 <= clip_image008[25] <= K – 1(当插入位置clip_image008[26] = clip_image006[16]时,则无需对数组进行赋值操作)。其赋值次数为:clip_image016[6]。故插入N个元素时,算法总平均赋值次数为:

clip_image018[6]

证毕。

 

随机分析

·比较次数

clip_image020[6]为排列clip_image022[6]的一种有序序列。

定理1 clip_image024[10]clip_image026[6],在clip_image028[10]中若q出现在p之前,则称clip_image024[11]clip_image028[11]的倒位。

定义对于clip_image030[6]clip_image032[6]为:

clip_image034[6]

clip_image036[6]

clip_image038[6]即表示:在排列A的第p个位置之前,大于A[p]值的元素总数。

假设插入第clip_image040[6]个元素时,其比较次数为:

clip_image042[6]clip_image044[6]代表是否与哨兵比较

故插入N个元素时,算法总平均赋值次数step1为:

clip_image046[6]

对于给定的位置clip_image048[14]clip_image050[6]出现在clip_image048[15]之前或clip_image048[16]之后的概率相等,即:

clip_image052[6]

算法总平均赋值次数step2为:

clip_image054[6]

clip_image056[6]算法总平均赋值次数step3为:

clip_image058[6]

证毕。

 

参考资料

http://www.cse.ust.hk/faculty/golin/COMP271Sp03/Notes/Ins_Sort_Average_Case.pdf

http://courses.cs.vt.edu/~cs3114/Spring10/Notes/T14.SortingAnalysis.pdf

posted on 2012-06-12 13:54 我思我能 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/icanth/archive/2012/06/12/2546250.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值