0
假設我有以下數組。高效的ay來處理數組
陣列1:城市列表(可能有一些項目是一樣的陣列2) 陣列2:城市列表
我要輸出以下列表:
- 城市列表僅在只在兩個陣列城市陣列2
- 列表城市陣列1
- 列表
完成1-3的最有效方法是什麼?
我想在每個數組中存儲城市的名稱,然後做一個foreach比較兩個。
假設我有以下數組。高效的ay來處理數組
陣列1:城市列表(可能有一些項目是一樣的陣列2) 陣列2:城市列表
我要輸出以下列表:
完成1-3的最有效方法是什麼?
我想在每個數組中存儲城市的名稱,然後做一個foreach比較兩個。
如果你的陣列進行分選,可以並行遍歷它們:
index_1 = 0 // assuming zero based indexing
index_2 = 0
repeat the follwoing loop:
if(index_0 is out of range)
count (remaining) cities from array 2
else if(index_1 is out of range)
count (remaining) cities from array 2
else {
a = get city from array 1 with the index_1
b = get city from array 2 with the index_2
if(a = b) {
increment no. of cities in both arrays
increment both indices
}
else if(a < b)
count cities from array 1 until city from array 2 is b, update indices
else
count cities from array 2 until city from array 1 is a, update indices
}
end loop
這應該在數組大小的線性時間做這項工作。
如果數組未按排序算法排序,
如果數組很小,請不要打擾,請使用帶有嵌套循環的蠻力方法。
存在的測試最好用哈希對象/字典完成。 – Tim
**設置交叉點**是你正在嘗試做的事項。你提出的建議將會完成這項工作,但這不是最有效的方法。 – Nuclearman