# Sort Algorithm {%hackmd theme-dark %} --- ## 排序是寫程式當中相當重要的一環 ---- ### 輸入一串數字 ### 3 5 1 4 2 ### 請將他排序 ---- ### 對於這個問題 ### 人腦可以直接解決 ### 但對電腦需要一套固定的模式讓他解決 ### 這種解決問題的方法就稱為演算法 --- ## Bubble Sort ---- ### 請看白板 ---- ### 實做部分 ```cpp= #include <iostream> using namespace std; int main() { int arr[100] = {2147483647}; int n; cin >> n; for (int i = 0; i < n; i++) { cin >> arr[i]; } for (int i = 0; i < n; i++) { for (int j = 0; j < n - 1; j++) { if (arr[j] > arr[j + 1]) { swap(arr[j], arr[j + 1]); } } } for (int i = 0; i < n; i++) { cout << arr[i] << " "; } cout << endl; } ``` --- ## 優化部分 ---- ### 請看白板 ---- ```cpp= #include <iostream> using namespace std; int main() { int arr[100] = {2147483647}; int n; cin >> n; for (int i = 0; i < n; i++) { cin >> arr[i]; } for (int i = 0; i < n; i++) { for (int j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) { swap(arr[j], arr[j + 1]); } } } for (int i = 0; i < n; i++) { cout << arr[i] << " "; } cout << endl; } ``` ### 如此可以減少約一半的運算量 --- ## 內建的排序工具 ---- ### 在algorithm函式庫當中有內建sort函式 ```cpp= sort(arr, arr + n); ``` ### 此處arr與arr + n代表兩位子 ### 聽得懂就聽,聽不懂要會用 ### 這個非常好用!!!
{"metaMigratedAt":"2023-06-15T12:43:03.902Z","metaMigratedFrom":"YAML","title":"Sort Algorithm","breaks":true,"slideOptions":"{\"spotlight\":{\"enabled\":false}}","contributors":"[{\"id\":\"739c72cc-15ad-447f-a374-8309c01a2725\",\"add\":5,\"del\":0},{\"id\":\"5b103006-4946-4e27-87aa-2ce75fd5fc72\",\"add\":1280,\"del\":20}]"}
    235 views
   Owned this note