我基本上需要快速搜索大量数字(在2 ^ 128范围内)。那里有什么比二分搜索更好的表现,即。比O(log n)好吗?
[edit]对数据进行排序,并且几乎均匀分布。
答案 0 :(得分:3)
二进制搜索仅在数据排序时有效。二元搜索的边际改进是插值搜索。但是,二进制搜索的插值搜索效率取决于数据的分布。如果数据集非常均匀分布,则可以优先考虑插值搜索。 这个链接可能有帮助, http://blog.imaginea.com/interpolation-search-a-search-algorithm-better-than-binary-search/