二进制搜索与三元搜索

时间:2015-09-14 19:22:52

标签: algorithm search binary-search ternary-search

时间空间复杂性而言,二进制搜索优于三元搜索

2 个答案:

答案 0 :(得分:4)

两者都有恒定的空间,但三元搜索的大O时间是Log_3 N而不是二进制搜索的Log_2 N ,它们都出现到log(N),因为log_b(N)= log_x(N)/ log_x(b )

在实践中,不使用三元搜索,因为您必须在每个步骤进行额外的比较,这在一般情况下会导致更多的比较。 2 * Log_3(N)比较与Log_2(N)比较。

答案 1 :(得分:0)

这可能取决于数据。如果你的数字大致相等,小于,等于和大于比较,那么将数据分成三种方式意味着对数的基数是3而不是2,这是更好的。但在实践中,三向比较比双向比较更昂贵,因此在一般情况下,三向比较的额外成本可能不值得。