就时间和空间复杂性而言,二进制搜索优于三元搜索?
答案 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,这是更好的。但在实践中,三向比较比双向比较更昂贵,因此在一般情况下,三向比较的额外成本可能不值得。