­

【系列】经典算法题 :排序算法空间

  • 2019 年 10 月 4 日
  • 筆記

作者 | 程序员小吴

来源 | 五分钟学算法

题目描述

下述几种排序方法中,要求内存最大的是()

A、快速排序

B、插入排序

C、选择排序

D、归并排序

题目解析

一般对于 排序问题 ,我们遇到的都是考察 时间复杂度 ,很少会去了解它们的 空间复杂度,险些被这道题给绕过去。

这个问题如果对下面这张图比较了解的话,很快就能选出答案。

  • 快速排序的实现采取了递归,因此空间复杂度为 O(logn)。
  • 插入排序只是借助一个临时变量进行交换元素,因此空间复杂度为 O(1)。
  • 选择排序与插入排序差不多,因此空间复杂度为 O(1)。
  • 归并排序需要分配一个大小为 n 的数组,因此空间复杂度为 O(n)。

以,这一题的答案为 D。