Re: [問題] Costed Sorting 的演算法

看板Programming作者 (-858993460)時間13年前 (2010/11/13 14:37), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串4/7 (看更多)
: → ykjiang:如允許先找出 sorted sequence ,有方法, 61.59.12.146 11/13 12:44 : → ykjiang:使最糟情況只要swap n次,n為元素個數 61.59.12.146 11/13 12:45 : → ykjiang:若否,你需要的是挑一個 nlogn 的演算法 61.59.12.146 11/13 12:52 我應該知道這邊推文說的是什麼方法... 那是這樣的 我們先找出 sorted sequence 以剛剛的 18976 來說 1 8 9 7 6 1 6 7 8 9 如果把同位置的原數和目標數串起來的話 這裡會串出兩圈來: 1 -> 1 ; 6 -> 9 -> 7 -> 8 -> 6 長度分別是 1,4 也就是 不看 cost 的話我們只要對換 (6,9),(6,7),(6,8) 但如果算上 cost 的話 這裡需要的 cost 就是 圈中最小數x(圈長度-1)+圈中其餘數和 所以這時套用前幾篇回文的想法 引入一個比較小的數 變成對換 (1,6),(1,9),(1,7),(1,8),(1,6) 這樣的 cost 就是 較小數x(圈長度+1)+(圈中數字和+圈中最小數) 那麼對於每個串出來的圈就用兩個方法中 cost 比較小的那一個來做 這樣應該是個還不錯的做法... -- ˊ_▂▃▄▂_ˋ. ◣          ▅▅ ▅▅ ι●╮   ./◤_▂▃▄▂_◥ \'▊   HARUHI █████ <■┘   ◤◤◥█◥◥█Δ   ISM    By-gamejye ¢|\   ▌▌ζ(▏●‵◥′●)Ψ ▏           █    ⊿Δ    /|▋ |\ ▎         ハルヒ主義      ▄█ ◥◥|◣ ‵′ ◢/'◢◢S.O.S 世界をいに盛り上げるための宮ハルヒの    -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.28.92

11/13 14:56, , 1F
:)
11/13 14:56, 1F
文章代碼(AID): #1CtZ8skJ (Programming)
討論串 (同標題文章)
文章代碼(AID): #1CtZ8skJ (Programming)