排序算法的‘內存消耗’:空間複雜度入門解析
排序算法的空間複雜度(內存消耗)是關鍵考量,尤其在內存有限場景下。空間複雜度描述算法運行中額外存儲空間與數據規模 \( n \) 的關係,以 \( O(1) \)、\( O(n) \)、\( O(\log n) \) 表示。 主要排序算法空間特性: - **原地排序**(冒泡、選擇、插入、堆排序):無需額外數組,空間複雜度 \( O(1) \); - **歸併排序**:分治後合併需臨時數組,空間 \( O(n) \); - **快速排序**:遞歸分區,平均空間 \( O(\log n) \)。 選擇策略:內存有限優先 \( O(1) \) 算法;內存充足且需穩定排序選歸併;追求平均性能(如標準庫排序)選快速。理解空間特性可平衡時空,寫出高效代碼。
閱讀全文