【系列】經典演算法題 :排序演算法空間

  • 2019 年 10 月 4 日
  • 筆記

作者 | 程式設計師小吳

來源 | 五分鐘學演算法

題目描述

下述幾種排序方法中,要求記憶體最大的是()

A、快速排序

B、插入排序

C、選擇排序

D、歸併排序

題目解析

一般對於 排序問題 ,我們遇到的都是考察 時間複雜度 ,很少會去了解它們的 空間複雜度,險些被這道題給繞過去。

這個問題如果對下面這張圖比較了解的話,很快就能選出答案。

  • 快速排序的實現採取了遞歸,因此空間複雜度為 O(logn)。
  • 插入排序只是藉助一個臨時變數進行交換元素,因此空間複雜度為 O(1)。
  • 選擇排序與插入排序差不多,因此空間複雜度為 O(1)。
  • 歸併排序需要分配一個大小為 n 的數組,因此空間複雜度為 O(n)。

以,這一題的答案為 D。