栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

quicksort堆栈大小

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

quicksort堆栈大小

如您所知,在每个递归步骤中,您都要对数组进行分区。将较大的部分推入堆栈,然后继续处理较小的部分。

因为您要处理的是较小的,所以它最多是以前处理的一半。因此,对于我们推入堆栈的每个范围,我们将所使用范围的大小减半。

这意味着

log n
在我们使用匹配大小为1(因此已排序)的范围之前,我们不能将超出范围的内容压入堆栈。这限制了我们完成第一次下降所需的堆栈数量。

当我们开始处理“大零件”时,每个“大零件” B(k)大于同时生产的“小零件”
S(k),因此,我们可能需要更多的堆栈来处理B(k),而不是我们需要处理S(k)。但是B(k)仍然小于先前的“小部分”
S(k-1),一旦我们处理了B(k), 我们就将其从堆栈中取出
,因此比其小一号。当我们处理S(k)时,其大小与处理S(k-1)时的大小相同。因此,我们仍然有约束。

假设我们以相反的方式进行了操作-
推动较小的部分并继续处理较大的部分。然后,在病理上令人讨厌的情况下,我们

1
每次都会将大小范围推入堆栈,并继续以仅比先前大小小2的大小工作。因此,我们需要
n/ 2
在堆栈中放置插槽。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/413743.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号