Re: [問題] 排序演算法問題請教

看板C_and_CPP (C/C++)作者 (小安)時間15年前 (2011/02/27 19:44), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《fjf1980 (聽說 侯佩岑是豬頭)》之銘言: : for internal sorting algorithm:selection sort, insertion sort, bubble sort, : and quick sort. : which method runs faster for a file in reverse order? : 答案是Quick sort, : 我的疑問: : reverse order對Quick sort是worst case, O(N平方) : selection sort的O(N平方),且selection sort交換固定是n-1次 : 我本來答案寫selction sort, 不懂為何正確答案要選Quick sort, : 還請高手指教!! 感謝! Quicksort 的實作其實有很多種, 有些版本固定會拿第一個元素當作 pivot, 也有些版本選擇中間的元素, 甚至也有隨機選 pivot,和選九個元素的中位數作 pivot 的版本。 在以上所提版本中, 只有選擇第一個(或是最後一個)作 pivot 的版本, reverse order 才會是 worst case。 假設題目真是這個意思,那毫無疑問, Quicksort 的 average case 時間複雜度確實就是較低。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.78.231

02/27 19:47, , 1F
謝謝,或許此quicksort的pivot不是用第1或最後一個,那就
02/27 19:47, 1F

02/27 19:48, , 2F
不是worst case, 就可能會是average case,我這樣解讀
02/27 19:48, 2F
文章代碼(AID): #1DQZaH0u (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1DQZaH0u (C_and_CPP)