对n个记录的线性表进行快速排序为减少算法的递归深度,以下叙述正确的是() 每次分区后,先处理较短的部分 每次分区后,先处理较长的部分 与算法每次分区后的处理顺序无关 以上三者都不对
考虑一种极端情况,如果每次确定pivot后短的部分都为1,先处理短的部分,短的部分处理完后就会出栈,那么辅助栈的深度为O(1)即可,同理,如果先处理长的部分,较长的部分不断递归压栈,
辅助栈的深度就是O(n)。所以,如果每次都先处理较短的部分,那么长而化小,栈区的深度较小,反之,较长的部分不断递归压栈,栈区的长度就会大。