我必須在兩個數據結構ArrayList和LinkedList之間進行選擇。 我有兩個操作op_one,op_two。我應該選擇高時間複雜度數據結構還是高空間複雜度數據結構以獲得有效的方法?
如果讓我選擇的ArrayList - 我將結束與
for op_one ------ O(n), and at maximum n re-allocations
for op_two ------ O(1), and at maximum n re-allocations
如果讓我選擇的LinkedList - 我將結束與
for op_one ------ O(n), and zero re-allocations
for op_two ------ O(n), and zero re-allocations
我將存儲數百萬可比元素。我將同樣做這兩種操作。我應該選擇哪一個。
我明白你指望重新分配內存複雜度(刪除或插入一個項目時,在一個陣列轉移項目),但重分配是時間複雜性。因此,ArrayList的op_two可能是O(n)和** not ** O(1)。 不知怎的,我理解了關於哪個時間複雜度更好/更差的問題 – Javier
此外,如果每個重新分配意味着移動N個項目。 N重新分配意味着O(N^2)時間複雜度。請澄清一下。 – Javier
是否可以讓操作創建List? – Tom