[問題] 有關氣泡排序法一問

看板TransCSI作者 (dragon)時間15年前 (2009/05/30 12:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
當我們使用氣泡排序法進行 N 個數值的排序時, 必須執行兩層FOR迴圈(nested for-loop)。其中內層 迴圈需執行 (N-1) 次 IF 的測試,外層迴圈也需執行 (N-1)次, 總共會執行 (N-1)*(N-1)次 (大約為N^2,若 N值夠大的話) IF 測試。 即使數字已經完全按照順序排列,仍需要進行 N*N 次的比較 問題:有沒有可能降低 N*N 比較的次數? 我想到的方法是取中斷點 在中間先取中斷點 然後 用if跑跑看有沒有 照順序 如果沒有 再用右邊3/4觸再取另一個中斷點 跑跑看 有沒有照順序 我不知道這種方法是否可行? 我目前只想到這種方法 如果有更好的方法 請站內信給我 或按R 回覆文章 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.73.50.213
文章代碼(AID): #1A8A-pO4 (TransCSI)