首页 > 试题广场 >

采用递归方式对顺序表进行快速排序,下列关于递归次数的叙述中,

[单选题]
采用递归方式对顺序表进行快速排序,下列关于递归次数的叙述中,正确的是()
  • 递归次数与初始数据的排列次序无关
  • 每次划分后,先处理较长的分区可以减少递归次数
  • 每次划分后,先处理较短的分区可以减少递归次数
  • 递归次数与每次划分后得到的分区处理顺序无关
递归次数,取决于递归树,而递归树取决于轴枢的选择。树越平衡,递归次数越少。
而对分区的长短处理顺序,影响的是递归时对栈的使用内存,而不是递归次数
发表于 2017-04-18 16:04:46 回复(4)
快速排序中递归的调用次数与初始数列顺序无关,也与分区优先处理的次序无关。
发表于 2016-05-12 12:32:13 回复(3)
答案选D
A递归次数和数据排列有关 若有序,这次数为0(N)。理论上最少的次数为0(logN)
BC 每次划分应该先处理较短的分许,只是减少递归占用的内存空间,并不能减少次数。

发表于 2016-03-29 10:49:32 回复(5)
快速排序的 递归的次数与 初始 数据的排列顺序有关, 递归次数与每次划分后得到的分区处理顺序无关
发表于 2015-11-16 09:58:28 回复(0)
快排算法中
递归的次数与 初始 数据的排列顺序有关
递归次数与每次划分后得到的分区处理顺序无关

递归次数,取决于递归树,而递归树取决于轴枢的选择。树越平衡,递归次数越少。
而对分区的长短处理顺序,影响的是递归时对栈的使用内存,而不是递归次数
发表于 2017-06-30 19:22:41 回复(0)

递归次数与处理先后无关

栈的深度与处理先后有关


发表于 2019-03-22 22:53:39 回复(0)
A:递归次数与初始数据的排列次序有关,若有序,则递归次数增多;
BC:划分后,处理长的分区或处理短的分区可以减少递归对栈的使用内存;
D:递归次数与先处理长分区或短分区的顺序无关
发表于 2017-08-01 17:45:22 回复(2)
递归次数与各元素的初始排列有关。如果每一次划分后分区比较平衡,则递归次数少;如果划分后分区不平衡,则递归次数多。递归次数与处理顺序无关。
发表于 2020-09-05 15:42:30 回复(0)
答案选D
A递归次数和数据排列有关 若有序,这次数为0(N)。理论上最少的次数为0(logN)
BC 每次划分应该先处理较短的分许,只是减少递归占用的内存空间,并不能减少次数
发表于 2022-11-16 10:17:36 回复(0)
递归次数,取决于递归树,而递归树取决于轴枢的选择。树越平衡,递归次数越少。 而对分区的长短处理顺序,影响的是递归时对栈的使用内存,而不是递归次数
发表于 2021-07-25 07:43:51 回复(0)
每次优先处理短的部分会减少递归调用的深度。次数不会减少。
发表于 2020-08-09 16:39:53 回复(0)
递归的越多的说明执行的越多,时间复杂度越高,快排在序列基本有序的情况下的最坏时间复杂度为O(n^2),A明显错误。而处理分区的先后顺序并不会影响时间复杂度或者说递归次数。真正影响次数的是枢纽元素的选择,如果枢纽元素选择不好,可以在无序的输入数列中导致最坏的时间复杂度O(n^2)
发表于 2018-06-14 15:26:03 回复(0)
1.每次处理较短的部分,减少内存的占用 2.数据越乱,递归次数越少
发表于 2017-08-28 17:25:36 回复(1)
递归的次数为logn不变,但是递归的深度小的话,应该选择短的一侧先处理
发表于 2017-04-24 22:06:44 回复(0)
我感觉与初始排序和分区处理顺序都无关啊。。。
发表于 2017-03-31 11:55:28 回复(0)
我认为ad均正确
发表于 2016-09-05 14:09:39 回复(1)
我怎么觉得无关不理解
发表于 2016-07-27 00:30:22 回复(0)
不应该是先处理较短的的?
发表于 2016-03-27 21:31:54 回复(1)