1
例如,我有一個值爲1到10的列表。值在一個有序數組中。由於我知道上界,下界,中位數,平均值等等,並且這些值是有序的,是否沒有一種算法可以利用這些知識並提供快速有效的搜索特殊的價值?是否存在利用可搜索值分佈的已知搜索算法?
例如,我有一個值爲1到10的列表。值在一個有序數組中。由於我知道上界,下界,中位數,平均值等等,並且這些值是有序的,是否沒有一種算法可以利用這些知識並提供快速有效的搜索特殊的價值?是否存在利用可搜索值分佈的已知搜索算法?
絕對如此。
這聽起來像是任何形式的O(logn)複雜度的分而治之算法(您將每步的問題空間減半)的一個很好的候選人。
看看http://en.wikipedia.org/wiki/Binary_search_algorithm#Algorithm並以您選擇的語言實施。
的Java(二進制搜索):http://docs.oracle.com/javase/7/docs/api/index.html
的Python(對開):http://docs.python.org/library/bisect.html
希望這有助於。
Edmon
二分查找怎麼樣? – MatijaSh 2012-07-30 02:24:33
同樣在一些數據庫中,您可以「優化」您的表格。當它優化時,它會查看你的數字的分佈,常見的數字等等。如果你查找大於最大值的東西,它會立即告訴你它找不到它等等。 – 2012-07-30 12:57:41