快速排序算法的递归深度(或者可能是调用堆栈大小)

问题描述 投票:0回答:1

我正在寻找快速排序算法的递归深度或最佳情况的级别。

参考书、Google 和所有其他资源都给了我答案:快速排序算法的最佳情况的递归深度是 log n。然而,画出递归树时,从顶部到基本情况的递归深度应该是log n + 1。那么,为什么 log n 是。

recursion quicksort
1个回答
0
投票

让我们看看霍尔的分区方案,在最好的情况下将偶数大小的数组分区为相等大小的分区。

当数组只有 1 个元素时,不会发生分区。递归树仅存在一个根节点。该树的高度为 0,即 log21.

当你有一个有 2 个元素的数组时,它被划分为两个 1 的数组,这是一个有一个根和两个叶子的递归树。它的高度是1,即log22.

通过归纳我们可以看到,当数组的大小𝑛是2的幂时,递归树的高度是log2𝑛。

也许您使用了深度的替代定义,但维基百科将其定义为:

节点的深度是到其根的路径(即它的根路径)的长度。因此根节点的深度为零...

© www.soinside.com 2019 - 2024. All rights reserved.