簡體   English   中英

將數組轉換為 Set 的時間復雜度 (Big-O)

[英]Time complexity (Big-O) of converting an array to a Set

所以有多種方法可以在 JS 中將Array轉換為Set

示例 #2肯定是O(n) ,因為它遍歷數組的所有元素。 示例 #1的情況是否相同? 還是JS在后台為我們做了一些優化?

如果是,使用Example #1有什么缺點嗎?

示例 1

const arr = [ 1, 3, 2, 3, 5 ];
const set = new Set(arr);

console.log(set);

/*
    Output: Set { 1, 3, 2, 5 }
*/

示例 2

const arr = [ 1, 3, 2, 3, 5 ];    
const set = new Set();
arr.map(item => set.add(item));

console.log(set);

/*
    Output: Set { 1, 3, 2, 5 }
*/

它仍然是O(n) JS 沒有任何神奇的方法可以將所有n元素放入Set中,而無需實際遍歷所有n元素。 低於O(n)的唯一方法是跳過一些元素,如果必須考慮將所有元素都包含在Set中,這顯然是不可能的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM