线性和二分搜索
Linear & Binary search
如果一台计算机速度超快且内存无限,那么最好使用哪种搜索操作,或者我们可以使用我们的任何选择吗? (介于线性搜索和二分搜索之间)
视情况而定。一般来说,如果您要搜索的内容已经排序 - 使用二进制搜索,否则使用线性搜索。
线性搜索一次扫描一个项目,不跳转到任何项目。时间复杂度为 O(n).
作为二进制搜索,一旦找到排序列表的中间部分,就将搜索减少一半。时间复杂度为 O(log n).
注意:如果不排序,二分搜索将具有与线性搜索相同的性能。
所以无论你有多少计算能力或space,二进制搜索总是更好。
的一篇很棒的文章
如果一台计算机速度超快且内存无限,那么最好使用哪种搜索操作,或者我们可以使用我们的任何选择吗? (介于线性搜索和二分搜索之间)
视情况而定。一般来说,如果您要搜索的内容已经排序 - 使用二进制搜索,否则使用线性搜索。
线性搜索一次扫描一个项目,不跳转到任何项目。时间复杂度为 O(n).
作为二进制搜索,一旦找到排序列表的中间部分,就将搜索减少一半。时间复杂度为 O(log n).
注意:如果不排序,二分搜索将具有与线性搜索相同的性能。
所以无论你有多少计算能力或space,二进制搜索总是更好。