Download presentation
Presentation is loading. Please wait.
1
1 10152: ShellSort ★★☆☆☆ 題組: Problem D 題號: 10152: ShellSort 解題者:林一帆 解題日期: 2006 年 4 月 10 日 題意:烏龜王國的烏龜總是一隻一隻疊在一起。唯一改變烏龜位置 的方法為:一隻烏龜爬出他原來的位置,然後往上爬到最上方。給 你一堆烏龜原來排列的順序,以及我們想要的烏龜的排列順序,你 的任務是按照先後次序列出出哪隻烏龜需往上爬,使得可以產生所 要的烏龜排列順序,且爬的動作要發生最少。
2
2 題意範例:輸入的第一列有一個整數,代 表以下有多少組測試資料。每組測試資料 的第一列有 1 個整數 n ( n<=200 ),代 表烏龜的數目。接下來的 n 列每列有一隻 烏龜的名字(烏龜名字均為唯一,且僅包 含字元、空白、句點,長度不會超過 80 個 字元),代表原來烏龜排列的順序(由上 到下)。再接下來的 n 列每列也有一隻烏 龜的名字,代表我們想要的烏龜排列順序 (也是由上到下)。
3
3 題意範例 (cont) : Inputoutput 1 sun 3 moon moon sun earth sun moon
4
4 題意範例 (cont) : 原始順序後來順序 moon earth sun earth moon
5
5 解法: 解法範例: index 原始順序 後來順序 由最後的 element 和其 index 開始比較 0 moon earth 發現不相等 跟原始的上一個繼續比 1 sun sun 且將不相等的紀錄在一個陣列中 2 earth moon 直到遇到自己時跳出 換上一個跟相 同 index 依照剛剛的方法繼續比 如左圖 我們將會記住 sun 和 earth Index 原始順序 後來順序 暫存 在和原始比時 0 moon earth earth 若自己已在暫存 1 sun sun sun 則答案呼之欲出 2 earth moon
6
6 討論: 1. 時間複雜度為 O(n 2 ) ,因為其中比較是 否存在在暫存陣列,我們使用的方法是 seguential search ,花費 O(n) ,比較 陣列時也花了 O(n) ,故時間複雜度為 O(n2) 。 2. 空間複雜度亦為 O(n) ,因為只使用到數 個一維陣列。
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.