簡體   English   中英

二進制搜索與簡單搜索

[英]Binary search vs simple search

根據算法書籍,二進制搜索的性能是O(log n),而對於簡單搜索,它是O(n)。

但是為什么我們也不考慮分揀的時間,這是二元搜索的先決條件?

簡而言之 :因為通常構建該列表只進行一次,而搜索(和更新)則多次完成。

構造排序列表確實需要O(n log n) 使用二進制搜索的關鍵是,一旦對集合進行排序,我們就可以對該列表執行多個查詢,每個查詢都有O(log n)

此外,如果您使用二進制搜索樹,您也可以在O(log n)中執行插入和刪除元素,因此更新集合也可以很便宜(假設您使用有效的數據結構)。

例如,在數據庫中,經常使用索引來執行快速查找。 通常,與更新次數相比,讀取次數較多。 更新單個元素需要O(log n) ,因此在現有數據上創建索引確實很昂貴,但與搜索和更新B樹數據結構[wiki]相比,這並不常見。

假設數據將被存儲已經排序。 由於每次執行搜索時都不需要對數據進行重新排序,因此不會在Big O中對其進行計算。

暫無
暫無

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

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