有 N 份資料,每份資料皆以兩個大寫英文字母標記(例如 AK、TA 等等)。請設計 一 O(N) 時間的演算法,將此組資料依標記的字典順序排序,並請說明此演算法所 需使用的空間。
本題有兩個變相,故宣告一二維陣列 (26x26)
A | B | .... | Z |
B | |||
... | |||
Z |
讀取資料檔案,遇到對應的資料時,陣列內容值 + 1
最後再依序從陣列第一列開始讀到最後一列輸出遇到大於 0 的位置,即是排序後的結果。
製作陣列可以說是常數的時間複雜度,因為 26 * 26 是算的出來的,只取決於讀進的資料檔大小。
No comments:
Post a Comment