精華區beta CTSH91301 關於我們 聯絡資訊
※ 引述《stanleyqoo ( ★恆星的恆心☆ ￾ )》之銘言: : : In-Place qsort跟一般qsort一樣或類似嗎?? : : 我學資結時沒見過In-Place的... : 不一樣唷 但是可以說類似吧 : 我把部分的 In-Place Quick Sort 的跑的片段拿上來給你看 : 85 24 63 45 17 31 96 [50] : <l> <r> : 85 24 63 45 17 31 96 [50] : <l> <r> : 31 24 63 45 17 85 96 [50] : <l> <r> : 31 24 63 45 17 85 96 [50] : <l> <r> : 31 24 17 45 63 85 96 [50] : <l> <r> : 31 24 17 45 63 85 96 [50] : <r> <l> : 31 24 17 45 [50] 85 96 63 : <r> <l> : 用 [ ] 框起來的是 PIVOT : 然後各別從左邊和右邊攻過去 我老師都愛用"攻"這個字 : (1)由左攻 攻至比PIVOT大時停止 標記<l> : (2) 右 PIVOT小 停止 標記<r> : (3)交換此時左右兩個標記的值 : (4)若 <l> 和 <r> 交錯時 就把PIVOT 和 <l> 交換 : 上面的片段就是用這個方法去執行 : 我們老師要我們接著做下去 做到全部SORT完為止 : 但是我卻不知道是不是一定要選最右邊的當PIVOT : 還是任意去選都可以 我大概懂了.. 選最右邊當PIVOT是便於使用的關係吧 如果我選了31 85 24 63 45 17 [31] 96 50 <l> <r> 17 24 63 45 85 [31] 96 50 <r> <l> 17 24 [31] 45 85 63 96 50 <r> <l> 到這邊應該要用遞迴把[31]左邊跟右邊重新sort吧? 這樣看來隨便挑都是可以的 但是從遞迴使用的觀點上來看挑選最邊邊(左或右)的element來當PIVOT應當是最好的選擇 便於撰寫,減少判斷元素個數,閱讀方便 嗯嗯 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.221.134
stanleyqoo:經過私下討論後 終於大功告成 謝謝麥爺! 推 218.175.25.35 12/30