首页 > 试题广场 >

假设基准值为数组首元素的快速排序,要使得数组满足非降序排列,

[单选题]
假设基准值为数组首元素的快速排序,要使得数组满足非降序排列,下列数据分布导致快排算法效率最低的是____。
  • 2-6-3-7-5-1-4
  • 6-2-3-5-4-1-7
  • 7-5-3-2-4-1-6
  • 1-5-7-2-4-6-3
  • 1-2-3-4-5-6-7
  • 4-1-3-7-5-6-2
第一趟,1跟后面6个数比,n 第二趟,2跟后面5个数比,n-1 ... 以此类推,得到O(n²)
发表于 2018-10-16 10:50:25 回复(0)
基本有序的情况下:快排最慢,堆排最快。
发表于 2015-08-29 16:56:55 回复(1)
快排每一趟就是O(n),在一般情况下递归深度是log(n),所以总的复杂度是O(nlogn)。在有序的情况下,递归深度变成了n,所以总复杂度会退化到O(n*n)
编辑于 2015-09-04 16:34:33 回复(3)
初始序列有序时,快速排序效率最低
发表于 2015-08-27 16:45:16 回复(2)
说的是非降序排列 E答案明明已经就是升序排列了啊 快排一次就可以排好吧
发表于 2015-08-29 18:46:16 回复(3)
快排不适合有序
发表于 2021-12-16 22:05:55 回复(0)
快速排序时间复杂度为nlogn,其中是代表每次排序需要O(n),logn代表的递归深度,也就是需要排序的次数
当给出的数据有序,那么二叉树会退化为一条斜链,那么此时递归深度就变为n了。。。。。此时的时间复杂度就为n^2
发表于 2017-07-03 10:03:41 回复(0)
非降序。。。直接写升序不行吗?
发表于 2023-11-03 19:26:08 回复(0)
快排不适合有序
发表于 2022-01-21 16:22:27 回复(0)
我明白 快速排序越有序越慢 对于E 我居然不敢选择。
题目中说 需要非降序 E都已经排好序了 我以为就不用排序了 不知道自己在想啥、
发表于 2020-05-29 10:55:58 回复(0)

快速排序要求数组越乱越好,越有序效率越低


发表于 2019-09-05 14:25:02 回复(0)
快排在有序的情况时间复杂度最高,为O(N2),此时每次都划分一个长度为0和长度为N-1的子数组。推导过程可看:
发表于 2018-04-01 12:22:06 回复(0)
快排越接近有序,效率越低,有序时效率最低。所以选E
发表于 2017-08-07 15:26:29 回复(0)
炫头像
当序列是无序的时候,使用快速排序的效率最高
发表于 2016-07-30 14:34:54 回复(0)
c和e中每次选择的支点都是当前序列中最大或最小的,所以c和e的复杂度是一样的啊!两者递归深度是一样的啊!
发表于 2015-09-05 11:40:28 回复(0)