????????有時候我們需要從兩個不同數(shù)組中提取出相同的部分的數(shù)組或者計算有多少個相同的項,這個算法剛好能派上用場,
實現(xiàn)方案:
1、將兩個數(shù)組按從小到大排序;
2、遍歷第一個數(shù)組 array1,跟第二個數(shù)組 array2 做比較;
3、如果找到相等的則提取出該數(shù)據(jù)并且記錄下 array2 的下標(biāo)到臨時變量 t,下次循環(huán)則從 array2[t+1] 開始遍歷 array2;
4、如果沒有匹配到相等的而且 array2[t] 大于與 array1 對比的數(shù)據(jù)時, 記下 array2 當(dāng)前下標(biāo)到臨時變量 t,下次循環(huán)則從 array2[t] 開始;
經(jīng)過測試,該算法比“最笨”的作法無法在數(shù)組以何種方式排序都要強,如果量越多會越明顯,有點可惜的是暫時只能使用在 Int[] 上,有時間再想一下其它數(shù)據(jù)類型的比較


<!---->




























































<!---->




















































測試結(jié)果:
所謂的最笨的方法:


<!---->




































從圖中可以看到運行效率有了很大的提升,
以上只是不成熟的解決方案,歡迎各位一起來討論!

相關(guān)代碼下載
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
