作者Zoxge (Zoxge)
看板C_and_CPP
標題[問題] 一個檢查array內容的功能
時間Wed Apr 19 20:41:43 2017
開發平台(Platform): (Ex: Win10, Linux, ...)
Linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC
問題(Question):
有一個一維array,裡面隨機存了20個1~500之間的數字
現在要依序print出1~500之間的數字,但不包含那個一維array裡面的內容
請問除了下面網址內的方法(檢查array中每個index存放的值)之外
有什麼更快的方法能夠解決這個問題呢?
謝謝
程式碼(Code):(請善用置底文網頁, 記得排版)
https://ideone.com/1KIzIo
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.1.228.65
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1492605708.A.BF1.html
※ 編輯: Zoxge (106.1.228.65), 04/19/2017 20:46:45
1F:噓 Sidney0503: Prob_Solve 04/19 21:17
2F:→ pttworld: 開索引500的標記陣列,亂數產生標記不輸出。 04/19 21:19
3F:推 Qbsuran: 排序後 一切都好做 04/19 22:00
4F:→ pnpncat: 先對那20個數字排序 接下來你應該就會了 04/19 23:31
5F:→ pnpncat: 如果要用空間換時間的話 就是像上面講的那樣開一個陣列 04/19 23:34
6F:→ pnpncat: 存1~500這些數字 然後對那二十個數字跑for迴圈 將這些位 04/19 23:35
7F:→ pnpncat: 置的陣列內容改成-1之類的 接下來就看到-1的都不輸出 04/19 23:36
8F:→ pnpncat: 也有很多其他方式 例如用500個bit標記要不要輸出之類 04/19 23:41
9F:→ pnpncat: 反正就看你的應用需求去做取捨 04/19 23:41
10F:推 longlongint: hash(?可是才20個元素 liner search才是王者 04/20 08:35
11F:→ longlongint: 先排序然後把 index 放到第一個元素上面吧 04/20 08:36
12F:→ Hazukashiine: 不要排序 時間複雜度太高 空間上用位元陣列操作 04/20 12:44
13F:→ hunandy14: 動態刪減找一個刪一個,不過只有20個排序應該最省 04/27 13:07
14F:→ hunandy14: 排序有stl可以用 複雜度logn 04/27 13:08