排序算法中哪一种时间复杂度为O(nlogn)?

如题所述

答案是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。

扩展资料:

堆排序是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。

堆排序中堆的操作:

在堆的数据结构中,堆中的最大值总是位于根节点(在优先队列中使用堆的话堆中的最小值位于根节点)。堆中定义以下几种操作:

最大堆调整:将堆的末端子节点作调整,使得子节点永远小于父节点。

创建最大堆:将堆中的所有数据重新排序。

堆排序:移除位在第一个数据的根节点,并做最大堆调整的递归运算。

参考资料:百度百科-堆排序
温馨提示:答案为网友推荐,仅供参考
相似回答