[问题] 一个检查array内容的功能

楼主: Zoxge (Zoxge)   2017-04-19 20:41:43
开发平台(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
作者: Sidney0503 (Sidney0503)   2017-04-19 21:17:00
Prob_Solve
作者: pttworld (批踢踢世界)   2017-04-19 21:19:00
开索引500的标记阵列,乱数产生标记不输出。
作者: Qbsuran (Qbsuran)   2017-04-19 22:00:00
排序后 一切都好做
作者: pnpncat (meow)   2017-04-19 23:31:00
先对那20个数字排序 接下来你应该就会了如果要用空间换时间的话 就是像上面讲的那样开一个阵列存1~500这些数字 然后对那二十个数字跑for循环 将这些位置的阵列内容改成-1之类的 接下来就看到-1的都不输出也有很多其他方式 例如用500个bit标记要不要输出之类反正就看你的应用需求去做取舍
作者: longlongint (华哥尔)   2017-04-20 08:35:00
hash(?可是才20个元素 liner search才是王者先排序然后把 index 放到第一个元素上面吧
作者: Hazukashiine (私は幸せです)   2017-04-20 12:44:00
不要排序 时间复杂度太高 空间上用位元阵列操作
作者: hunandy14 (Charlott.HonG)   2017-04-27 13:07:00
动态删减找一个删一个,不过只有20个排序应该最省排序有stl可以用 复杂度logn

Links booklink

Contact Us: admin [ a t ] ucptt.com