排序 (Sort)
歡迎來到排序章節!排序是程式設計中最常見的需求之一,也是許多進階演算法(如二分搜尋、貪心法則)的前置步驟。本章節將帶你從最基礎的實作原理開始,進階到如何運用 C++ 強大的內建工具來解決各種複雜的排序問題。
1. 氣泡排序#
了解排序的基本原理。雖然效率不高,但透過實作氣泡排序,能讓你清楚掌握資料交換與比較的邏輯,並認識逆序數對的概念。
2. Sort 函式#
別再手寫排序了!介紹 C++ <algorithm> 函式庫中最強大的 sort 函式,讓你用一行程式碼就能完成 \(O(N \log N)\) 的高效排序。
3. 自定義比較#
想要由大到小排序?或是針對特殊的結構(如成績、座標)進行排序?學習如何撰寫比較函式 (Comparator) 來告訴電腦你的排序規則。
4. 在排序之後#
排序完還能做什麼?介紹 unique 去除重複元素以及 merge 合併有序序列等進階技巧,讓資料處理更靈活。
5. 題解:成績指標#
練習基本的排序應用,讀入學生成績後進行排序,並找出及格與不及格的分數邊界。
6. 題解:遊戲選角#
透過這道題目練習使用 pair 搭配自定義比較函式,解決多重條件(攻擊力與防禦力)的複雜排序問題。
7. 題解:偶先排序#
特殊規則排序的實戰練習,學習如何撰寫邏輯,讓偶數排在奇數前面,並同時維持數字大小的順序。