直接插入排序的比較次數、移動次數和賦值次數 最小/最大/平均值


直接插入排序的比較次數、移動次數和賦值次數 最小/最大/平均值

 

 

 

基於該程序:

比較次數:指的是while循環的移動次數

移動次數:指的是數據在向量(一維數組)中的移動次數,包括R[0]<-R[i],R[j+1]<-R[0]和while循環中的R[j+1]<-R[j]

賦值次數:包括所有的賦值語句

 

關於比較次數與賦值次數的關系:

對於while循環,程序比較t次后退出循環,移動t-1次,賦值2t-2次,因為前面t-1個while循環執行,第t次while循環不執行。

對於for循環,每次程序額外移動2次,賦值3次。

所以每個for循環比較t次,移動t+1[(t-1)+2]次,賦值2t+1次[(2t-2)+3]。

 

I.平均比較次數與賦值次數

對於把第i(i=2,3,…,n)個數放入相應的位置,

程序在第j個位置退出while循環,a[i]放入a[j+1]處,

 

 

 

j 等於 i-1 ~ 0的概率都相同(一個數在一個序列中的位置的所有可能性的概率都相等)

所以

 

 

II.最小比較次數與賦值次數

最小值為while循環第一次直接退出的情況,比較次數為1次。

 

 

III.最大比較次數與賦值次數

最大值為當j=0時退出while循環的情況,比較次數為i次。

總結:

 

比價次數:

 

 

移動次數:

 

 

賦值次數:

 

 

然后我也不知道我對概念的理解和計算的理解對不對。。。

不過我覺得:

 


免責聲明!

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



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