插入排序——平均算法復雜度分析


@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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM