经典指数          
原因
5544
浏览数
0
收藏数
 

对n个记录的线性表进行快速排序为减少算法的递归深度,以下叙述正确的是()
  • 每次分区后,先处理较短的部分
  • 每次分区后,先处理较长的部分
  • 与算法每次分区后的处理顺序无关
  • 以上三者都不对

     举报   纠错  
 
切换
1 个答案

考虑一种极端情况,如果每次确定pivot后短的部分都为1,先处理短的部分,短的部分处理完后就会出栈,那么辅助栈的深度为O(1)即可,同理,如果先处理长的部分,较长的部分不断递归压栈,

辅助栈的深度就是O(n)。所以,如果每次都先处理较短的部分,那么长而化小,栈区的深度较小,反之,较长的部分不断递归压栈,栈区的长度就会大。

 
切换
撰写答案