单选题 下列排序算法中,时间复杂度为O(nlogn)且占用额外空间最少的是______。
A.堆排序 B.起泡排序 C.快速排序 D.希尔排序

【正确答案】 A
【答案解析】[解析] 本题主要考查各种排序方法的性能分析。
各种排序方法的比较见下表。

排序方法 时间复杂度 空间复杂度 稳定性 复杂性
最好 平均 最坏
直接插入 O(n) O(n2) O(n2) O(1) 简单
起泡 O(n) O(n2) O(n2) O(1) 简单
选择 O(n2) O(n2) O(n2) O(1) 简单
希尔 O(nlogn)
~O(n2)
O(nlogn)
~O(n2)
O(1) 复杂
快速 O(nlogn) O(nlogn) O(n2) O(logn) 复杂
O(nlogn) O(nlogn) O(nlogn) O(1) 复杂
归并 O(nlogn) O(nlogn) O(nlogn) O(n) 复杂
基数 O(d(n+rd)) O(d(n+rd)) O(d(n+rd)) O(rd) 复杂