如果在考研的数据结构填空题中出现快速排序的时间复杂度是填n的平方,还是n倍log以二为底n的对数

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 03:31:26
如果在考研的数据结构填空题中出现快速排序的时间复杂度是填n的平方,还是n倍log以二为底n的对数

如果在考研的数据结构填空题中出现快速排序的时间复杂度是填n的平方,还是n倍log以二为底n的对数
如果在考研的数据结构填空题中出现快速排序的时间复杂度是填n的平方,还是n倍log以二为底n的对数

如果在考研的数据结构填空题中出现快速排序的时间复杂度是填n的平方,还是n倍log以二为底n的对数
出题人应该不会这么坑爹吧!表示只能给出下面回答:
(1)最坏时间复杂度
 最坏情况是每次划分选取的基准都是当前无序区中关键字最小(或最大)的记录,划分的结果是基准左边的子区间为空(或右边的子区间为空),而划分所得的另一个非空的子区间中记录数目,仅仅比划分前的无序区中记录个数减少一个.
 因此,快速排序必须做n-1次划分,第i次划分开始时区间长度为n-i+1,所需的比较次数为n-i(1≤i≤n-1),故总的比较次数达到最大值:
Cmax = n(n-1)/2=O(n2)
 如果按上面给出的划分算法,每次取当前无序区的第1个记录为基准,那么当文件的记录已按递增序(或递减序)排列时,每次划分所取的基准就是当前无序区中关键字最小(或最大)的记录,则快速排序所需的比较次数反而最多.
(2) 最好时间复杂度
 在最好情况下,每次划分所取的基准都是当前无序区的"中值"记录,划分的结果是基准的左、右两个无序子区间的长度大致相等.总的关键字比较次数:
0(nlgn)
注意:
 用递归树来分析最好情况下的比较次数更简单.因为每次划分后左、右子区间长度大致相等,故递归树的高度为O(lgn),而递归树每一层上各结点所对应的划分过程中所需要的关键字比较次数总和不超过n,故整个排序过程所需要的关键字比较总次数C(n)=O(nlgn).
 因为快速排序的记录移动次数不大于比较的次数,所以快速排序的最坏时间复杂度应为0(n2),最好时间复杂度为O(nlgn).

如果在考研的数据结构填空题中出现快速排序的时间复杂度是填n的平方,还是n倍log以二为底n的对数 数据结构中堆排序,快速排序,归并排序排序的时间复杂度顺序快慢依次是什么?平均情况下排序最快最慢的分别是什么? 数据结构中排序的方法中稳定的有那些,不稳定的有那些(如快速排序等) 数据结构排序问题(在线等)5、下列排序算法中,( ) 算法可能会出现下面情况:初始数据有序时,花费的时间反而最多.(A)堆排序 (B)冒泡排序 (C)快速排序 (D)SHELL排序 数据结构中什么是排序算法的稳定性? 在快速排序, 堆排序,归并排序中 哪个是最稳定的排序方法? 数据结构排序算法中元素的平均移动次数如何求比如快速排序和归并排序(二路)算法的平均移动次数 求解一道 数据结构 堆排序的题 数据结构中的排序问题,急请问冒泡排序和快速排序在什么情况下用啊?知道的说下!也就是问在什么情况下用冒泡排序?什么情况下用快速排序啊?其他的排序也尽量多的说下吧, 5.快速排序在平均情况下的时间复杂度为_______________,在最坏情况下的时 间复杂度为________________.数据结构题目 在最坏情况下,下列排序方法中时间复杂度最小的是(D) A)冒泡排序 B)快速排序 C)插入排序 D)堆排序 在下列几种排序方法中,要求买内存量最大的是() A插入排序B选择排序C快速排序D归并排序 数据结构与算法题需要回答《数据结构与算法》模拟题一、填空题:(共15分)(每空一分)按照排序时,存放数据的设备,排序可分为 排序和 排序.内部排序和外部排序图的常用的两种存储结 如何做考研英语的排序题 c程序中冒泡法排序,选择法排序,快速排序的比较,哪个有优势,区别在哪里? 有谁能不能给想一个用数据结构中排序或者图形中算法的一个变形算法?也就是帮忙用排序或图形出一道算法题 冒泡排序法和快速排序法的区别VB中什么是冒泡排序和快速排序法? 下列排序算法中不稳定的是( ).A.快速排序 B.归并排序 C.冒泡排序 D.直接插入排序