49. 下列哪一種排序法所需的儲存空間最多?
(A) Bubble sort
(B) Insertion sort
(C) Quick sort
(D) Selection sort

答案:登入後查看
統計: A(12), B(11), C(57), D(8), E(0) #3099766

詳解 (共 3 筆)

#5808642
快速排序(Quick sort)通常需要...
(共 191 字,隱藏中)
前往觀看
10
0
#6429699

在排序演算法中,所需的儲存空間通常指的是額外空間複雜度(Auxiliary Space Complexity),也就是除了儲存原始資料所需的空間之外,演算法執行時額外需要的記憶體空間。

讓我們分析各個排序演算法的空間複雜度:

  • (A) 氣泡排序(Bubble Sort)

    • 這是一種原地(in-place)排序演算法。它只需要一個額外的臨時變數來進行元素交換。
    • 空間複雜度:O(1)(常數空間)。
  • (B) 插入排序(Insertion Sort)

    • 這也是一種原地(in-place)排序演算法。它只需要一個額外的臨時變數來儲存當前要插入的元素。
    • 空間複雜度:O(1)(常數空間)。
  • (C) 快速排序(Quick Sort)

    • 快速排序通常是遞迴實現的。雖然它被認為是一種原地排序演算法(不使用額外的陣列來儲存排序結果),但其遞迴呼叫會使用呼叫堆疊(call stack)
    • 平均情況下,遞迴深度是 O(logn),所以空間複雜度是 O(logn)
    • 最壞情況下(例如,當陣列已經排序或反向排序,且沒有使用好的樞紐選擇策略時),遞迴深度可以達到 O(n),此時空間複雜度是 O(n)
    • 相較於其他原地排序演算法,快速排序的遞迴堆疊空間需求是其主要額外空間消耗。
  • (D) 選擇排序(Selection Sort)

    • 這也是一種原地(in-place)排序演算法。它只需要一個額外的臨時變數來進行元素交換。
    • 空間複雜度:O(1)(常數空間)。

結論: 綜合來看,氣泡排序、插入排序和選擇排序的空間複雜度都是 O(1)。而快速排序由於其遞迴特性,在最壞情況下需要 O(n) 的堆疊空間,在平均情況下需要 O(logn) 的堆疊空間。

因此,在這些選項中,快速排序所需的儲存空間最多(特別是在考慮遞迴堆疊時)。

The final answer is C

0
0
#6342679

在所列的排序算法中,快速排序(Quick Sort)通常需要比冒泡排序(Bubble Sort)、插入排序(Insertion Sort)和選擇排序(Selection Sort)更多的儲存空間。這是因為快速排序在實現時,常使用遞迴方式進行分割,會在呼叫堆疊中佔用額外的空間。在最壞情況下,遞迴深度可能達到 O(n),導致較高的空間複雜度。Medium+1Medium+1

相比之下,冒泡排序、插入排序和選擇排序的空間複雜度為 O(1),因為它們只需要少量的額外儲存空間來交換元素。

因此,正確答案是 (C) Quick sort。

0
0