2个回答
展开全部
答案是D,堆排序。
选项中的四种排序方法的最坏时间复杂度、最好时间复杂度 、平均时间复杂度分别为:
A、冒泡排序: O(n2) 、O(n) 、O(n2)。
B、快速排序: O(n2) 、O(nlog2n)、 O(nlog2n)。
C、插入排序: O(n2)、 O(n) 、O(n2)。
D、堆排序: O(nlog2n)、 O(nlog2n)、 O(nlog2n)。
所以,在最坏情况下,冒泡排序时间复杂度=快速排序时间复杂度=插入排序时间复杂度= O(n2)>堆排序时间复杂度= O(nlog2n)。答案选D。
扩展资料:
堆排序是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。
堆排序中堆的操作:
在堆的数据结构中,堆中的最大值总是位于根节点(在优先队列中使用堆的话堆中的最小值位于根节点)。堆中定义以下几种操作:
最大堆调整:将堆的末端子节点作调整,使得子节点永远小于父节点。
创建最大堆:将堆中的所有数据重新排序。
堆排序:移除位在第一个数据的根节点,并做最大堆调整的递归运算。
参考资料:百度百科-堆排序
展开全部
排序方法 最坏时间复杂度 最好时间复杂度 平均时间复杂度
直接插入 O(n2) O(n) O(n2)
简单选择 O(n2) O(n2) O(n2)
起泡排序 O(n2) O(n) O(n2)
快速排序 O(n2) O(nlog2n) O(nlog2n)
堆排序 O(nlog2n) O(nlog2n) O(nlog2n)
归并排序 O(nlog2n) O(nlog2n) O(nlog2n)
所以选d
直接插入 O(n2) O(n) O(n2)
简单选择 O(n2) O(n2) O(n2)
起泡排序 O(n2) O(n) O(n2)
快速排序 O(n2) O(nlog2n) O(nlog2n)
堆排序 O(nlog2n) O(nlog2n) O(nlog2n)
归并排序 O(nlog2n) O(nlog2n) O(nlog2n)
所以选d
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询