日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java 两个数组交叉_java – 如何交叉两个没有重复的排序整数数组?

發布時間:2025/3/8 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 两个数组交叉_java – 如何交叉两个没有重复的排序整数数组? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這個問題本質上減少到一個連接操作,然后是一個過濾器操作(刪除重復,只保留內部匹配).

由于輸入都已經排序,所以可以通過O(O(size(a)size(b))的merge join來有效地實現連接.

過濾器操作將為O(n),因為連接的輸出被排序,并且要刪除重復項,所有您需要做的是檢查每個元素是否與之??前的元素相同.僅過濾內部匹配是微不足道的,您只是丟棄任何不匹配的元素(外連接).

并行機制(在連接和過濾器中)都有機會實現更好的性能.例如,Hadoop上的Apache Pig框架提供了parallel implementation的合并連接.

在性能和復雜性之間存在明顯的權衡(從而可維護性).所以我會說一個很好的答案面試問題真的需要考慮到性能要求.

>設置比較 – O(nlogn) – 如果沒有性能問題,相對較慢,非常簡單.簡單勝利.

>合并連接過濾器 – O(n) – 快速,容易出現編碼錯誤,使用if

表現是一個問題.理想情況下,嘗試利用現有庫來執行此操作,或者甚至在適當的情況下使用數據庫.

>并行實現 – O(n / p) – 非常

快速,需要其他基礎設施到位,如果卷是使用的

非常大,預計會增長,這是一個主要的表現

瓶頸.

(另請注意,intersectSortedArrays中的函數本質上是一個修改的合并連接,其中過濾器在連接期間完成,您可以稍后過濾,盡管內存容量略有增加).

最后的想法

事實上,我懷疑大多數現代商業RDBMS在實現聯接時提供線程并行性,所以Hadoop版本提供的是機器級并行性(分發).從設計的角度來看,也許一個很好的簡單的解決方案就是將數據放在數據庫上,A和B上的索引(有效排序數據),并使用SQL內部連接.

總結

以上是生活随笔為你收集整理的java 两个数组交叉_java – 如何交叉两个没有重复的排序整数数组?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。