我已將其標記為 Java,因為我從“Java Collections”中挑選了這句話——我正在做的課程的推薦文本。因此,對于添加/刪除操作,我理解二進制搜索首先是確定集合是否包含特定元素并確定必須添加/刪除元素的位置,然后在必要時進行移位。我引用了用于添加操作的書:“搜索階段是O(logn)。插入階段是O(n),但如果要添加的值已經(jīng)是成員,則跳過。因此整個操作通常是O(n)”為什么整體時間復雜度不是 O(nx logn)?此外,如果您有任何其他建議的文本可能對您推薦的外行來說更容易,那將不勝感激。
1 回答
www說
TA貢獻1775條經(jīng)驗 獲得超8個贊
因為二分查找是 O(logn),而插入階段是 O(n),所以時間復雜度在技術(shù)上是 O(n + logn)。因為 logn 與 n 相比微不足道,所以您可以刪除 logn 給出答案 O(n)。
添加回答
舉報
0/150
提交
取消
