作者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/cn.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