快速排序算法的递归深度

来源:互联网 发布:php curl 的使用 编辑:程序博客网 时间:2024/05/16 09:36

题目:对n个记录的线性表进行快速排序为减少算法的递归深度,以下叙述正确的是()

A.每次分区后,先处理较短的部分

B.每次分区后,先处理较长的部分

C.与算法每次分区后的处理顺序无关

D.以上三者都不对


答案:A


解析:在快速排序中,需要使用递归来分别处理左子段和右子段,递归的深度可以理解为系统栈保存的深度,先处理短的分段再处理长的分段,可以减少时间复杂度。

如果按长的递归优先的话,那短的递归会一直保存在栈中,直到长的分段处理完成。短的优先的话,长的递归调用没有进行,它是作为一个整体保存在栈中的,所以递归栈中保留的递归数据会少一些。

0 0