[讨论] 阵列搜寻问题

楼主: VastThunder (↑↑↓↓←→←→)   2015-06-17 19:28:16
假设今天给定一串整数阵列
内含数个不相等的数值
给定一个目标区间 假设0~500好了
印出不包含于阵列内容的数值
如何让整体 CPU calculation、Memory allocation 消耗最少?
没有想到一个好的算法...
作者: CaptainH (Cannon)   2015-06-17 19:35:00
可以先sort吗?
作者: johnjohnlin (嗯?)   2015-06-17 20:21:00
感觉不用 sort?
作者: johnhmj (耗呆肥羊)   2015-06-17 20:40:00
时间不考虑吗?
楼主: VastThunder (↑↑↓↓←→←→)   2015-06-17 21:03:00
我也是觉得不需要sortarray={1,44,55,100,105,106,201,254,305,339,380}
作者: uranusjr (←這人是超級笨蛋)   2015-06-17 21:07:00
“整体 CPU calculation、Memory allocation 消耗最少”你要先定义这个需求, 不可能同时最佳化两者
作者: Hazukashiine (私は幸せです)   2015-06-17 21:14:00
看情况,但是大多不用 sort 会比较符合你的需求
作者: MOONRAKER (㊣牛鹤鳗毛人)   2015-06-17 21:15:00
0-500随便写就好了 5e+06还差不多你给的阵列刚好就是sort好的当然马不用sort
作者: EdisonX (卡卡兽)   2015-06-18 00:49:00
两个 loop 做 xorfor(i=0;i<=500;++i) msk^=i;for(i=0;i<500;++i) msk^=ary[i]; 最后 msk 就是少的数.啊!我漏了!少的数可能不只一个... 那就用 bitwise 吧出现过的设 n-bit 为 1, 最后 polling 哪些 bit 为 0
作者: anyoiuo   2015-06-18 13:31:00

Links booklink

Contact Us: admin [ a t ] ucptt.com