[討論] 陣列搜尋問題

作者: 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