1樓:岔路程式緣
本題目說法有誤,冒泡法排序時,假定對n個資料排序,不管它們的順序是怎樣的,總是比較n(n-1)/2次,否則順序就不會排好。
而冒泡法排序時,並不是每次比較都要交換資料的位置,只有在兩個數的大小跟要排的大小順序相矛盾時,才產生交換動作,所以,儘管排序時比較了n(n-1)/2次,一般並不會交換n(n-1)/2次,而是少於n(n-1)/2次,只有在最壞的情況下才會交換n(n-1)/2次。
這個最壞情況是指,假如要把一組順序正好是從小到大排列數字,按照從大到小的順序排序,這時每次比較都要交換,所以要交換n(n-1)/2次。
這是本人的理解。願商榷。
2樓:
比如你要從大到小排序,資料正好從小到大,這就是最壞!
一般程式為
for i=1 to n-1
for j=i+1 to n
比較next
next
次數為:n-1、n-2、...3、2、1 ,加一起 就是 n(n-1)/2 次
3樓:
與你要的序相反的序,比如,你要升序,他給你降序,這就是最壞情況。因為需要顛倒數列,進行n(n-1)/2次交換……
4樓:匿名使用者
比較次數最多的情況就是最壞情況
在最壞情況下,堆排序需要比較的次數為多少
長月飛 標準答案是 0 nlog2n 首先前面的那個是o而不是0,相信你應該瞭解時間複雜度的表示方法吧,前面就有一個o,我認為此處也應該是和那個一樣的含義,即取n的最大次方!下面我們看看堆排序的定義 n個關鍵字序列kl,k2,kn稱為堆,當且僅當該序列滿足如下性質 簡稱為堆性質 1 ki k2i且k...
在什麼情況下「S」發的音,在什麼情況下「S」發 Z 的音
在濁子音或者母音後 c 在 i,e,y 的前面讀 s 希望幫助到你,若有疑問,可以追問 祝你學習進步,更上一層樓!在d後面。frieds fields 補充下,一般要在詞尾 s所加的那個詞的最後乙個音節是清音的話,那麼s就發清音s如果那個詞最後乙個音節是濁音,就發z 總的來說,s的發音有以下幾種情況...
在什麼情況下「S」發的音,在什麼情況下「S」發 Z 的音
在濁子音或者母音後c在 i,e,y的前面讀 s 希望幫助到你,若有疑問,可以追問 祝你學習進步,更上一層樓!總的來說,s的發音有以下幾種情況。s在詞首或者詞中,前或後接清子音時,s要發清子音 s 如 sun太陽 sofa 沙發silver 銀 銀白色的金屬,化學式ag sink 下沉sign 標記s...