03.03 如何高效的在兩個數組中找到相同的元素?

田長松


  

數組,就是相同數據類型的元素按必定次序擺放的集結,就是把有限個類型相同的變量用一個名字命名,然後用編號差異他們的變量的集結,這個名字稱為數組名,編號稱為下標。組成數組的各個變量稱為數組的分量,也稱為數組的元素,有時也稱為下標變量。數組是在程序設計中,為了處理便當, 把具有相同類型的若干變量按有序的方法組織起來的一種方法。這些按序擺放的同類數據元素的集結稱為數組。

棧內存

都在方法的棧內存中分配,當在一段代碼中定義一個變量時,java就在棧內存中為這個變量分配內存  

堆內存

堆內存用於存儲新操作符創建的目標和數組,堆中分配的內存由Java虛擬機的活動垃圾收集器處理。當在堆中創建數組或目標時,一個特殊變量在堆棧內存中被綁定在一起。讓堆棧內存中此變量的值等於數組的第一個地址或堆內存中的目標地址。堆棧中的變量成為數組或目標的引號變量。引號變量實際上將數組或目標的地址保存在堆內存中(也稱為目標的句柄)。在以後的程序中,棧的報價變量可以用來訪問棧中的數組或目標。


大旗科技說


小數組的話就用手上的編程語言提供的類庫,求數組的交集,如果沒有類庫提供,就用哈希的思想自己實現一個,或者用集合的思想轉一下,集合的交集就是相同的元素。

特大數組,用散列表來實現。這方面有一個非常好的實現,叫做布隆過濾法,你網上搜搜他的思想,非常適合判斷海量數據中是否存在某個元素,缺點是會有小概率的誤判。

做法就是對其中較大的一個數組做哈希散列,遍歷另一個數組,看是否存在,存在即為相同的元素。


分享到:


相關文章: