首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >快速排序树最大和最小高度

快速排序树最大和最小高度
EN

Stack Overflow用户
提问于 2018-11-22 09:44:30
回答 1查看 1.1K关注 0票数 2

在快速排序中,如果我们总是将左边的部分拆分为大小的a,将右边的部分拆分为大小的(n-1-a),那么递归树的最小高度和最大高度是多少?

EN

回答 1

Stack Overflow用户

发布于 2018-11-22 10:22:55

快速排序最坏的情况发生在输入数组是已排序的(不递减或不增加的顺序),并且我们总是选择第一个或最后一个元素作为枢轴(分区不是随机的)。

例如,输入数组:

代码语言:javascript
运行
复制
[1,2,3,4,5]

假设我们选择最左边的元素作为枢轴。因此,递归树的建立类似于:

代码语言:javascript
运行
复制
   n
  /  \
 1    n-1(2,3,4,5)

同样,2将作为枢轴,使树:

代码语言:javascript
运行
复制
   n
  /  \
 1    n-1(2,3,4,5)
     /   \
    1    n-2(3,4,5)

观察模式,树的高度将是O(N),在每个层次上分区算法都会取O(N)时间,从而导致总时间= O(N^2)

递归树的最佳高度是O(logN),这是当中间元素总是被选择为支点时发生的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53427987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档