如果待排序的数组近似递减排序,则此时使用快排算法进行递增排序的时间复杂度为()
A.O(n)
B.O(n^2)
C.O(nlogn)
D.O((n^2)*logn)
参考答案:B.
最坏的情况,待排序的序列为正序或者逆序,每次划分只得到一个比上一次划分少一个的子序列,另外一个为空。如果递归树画出来,就是一颗斜树。此时需要执行n-1次递归调用,且第i次划分需要经(n-i)次关键字比较才能找到才能找到第i个记录,因此比较的次数为(n-1)+(n-2)+...+1 = n*(n-1)/2,最终时间复杂度为O(n^2).
非常详细,很有用
使用js实现数组的冒泡排序
叉树前序遍历的递归和非递归实现?
分析一下,小程序为什么不能分享朋友圈?
某公园内有个奇怪的摊主小周,他只在星期一、星期二、星期三、星期五和星期六工作,而且他只出售4种商品:玩具汽车、充气气球、橡皮泥和遥控飞机。<
非常详细,很有用