假設理解 Big O 表示法。 JavaScript 中有範例。資料參考 Gayle Laakmann McDowell 的《Cracking the Coding Interview》
想像一下您想要將大量字串連接在一起。假設字串的長度都相同 x 且有 n 個字串,則需要 +n+ 🎜>x)O(x + 2x + ... + nx)
因此,在這件事上連接字串需要
)O(xn^2)O(xnO(xn 2
function joinWords(words) { let sentence = ""; for (let w of words) { sentence = sentence + w; } return sentence; })
時間完成。如果你問我的話,很長。演算法如下:
字串生成器類
function joinWords(words) { let sentence = []; for (let w of words) { sentence.push(w); } return sentence.join(""); }StringBuilder
類別可以幫助您避免這麼長的運行時間。簡而言之,此類創建所有字串的可調整大小的數組,並僅在必要時(1)1O(
n)n)O(n🎜> O(n) time,其中 n 是數組中字串的數量。以上是使用 StringBuilder 最佳化字串連接的詳細內容。更多資訊請關注PHP中文網其他相關文章!