資料結構 01
Algorithm Specification 演算法是什麼?簡單來說就是解決問題的方法。一個合格的演算法必須滿足以下五個條件: Input — 輸入:你的問題 Output — 輸出:你的答案 Definiteness — 明確性:每一步都必須是明確的 Finiteness — 有限性:必須在有限的步驟內結束 Effectiveness — 有效性:每一步都必須是可執行的 Selection Sort(選擇排序) Input: 一堆未排序的數字 Output: 由小到大(或由大到小)排好的數字 核心概念: 每次從剩餘的數字中找到最小的,放到當前位置,再從剩餘的數字中找下一個最小的,直到排完。 // Time Complexity: O(n^2) // Space Complexity: O(1) function selectionSort(arr) { const N = arr.length; for (let i = 0; i < N - 1; i++) { let minIndex = i; for (let j = i + 1; j < N; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } } [arr[i], arr[minIndex]] = [arr[minIndex], arr[i]]; } return arr; } 多種 Sort 每一種排序演算法的設計理念不同,常見的排序演算法有:...