TypeScript 陣列的插入排序(insertionSort)
插入排序是一種簡單的排序演算法,它的工作原理是將一個資料插入到已經排好序的有序資料中,以此來對整個資料進行排序。插入排序是一種穩定的排序演算法,它的時間複雜度為O(n2)。
在 TypeScript 中,我們可以使用插入排序來對陣列進行排序。以下是一個簡單的插入排序程式碼範例:
function insertionSort(arr: number[]) { for (let i = 1; i < arr.length; i++) { let current = arr[i]; let j = i - 1; while (j >= 0 && arr[j] > current) { arr[j + 1] = arr[j]; j--; } arr[j + 1] = current; } return arr; }
上面的程式碼會對傳入的陣列進行排序,並且會回傳排序後的陣列。
插入排序的執行流程如下:
- 從第一個元素開始,該元素可以被認為已經被排序
- 取出下一個元素,在已經排序的元素序列中從後向前掃描
- 如果該元素(已排序)大於新元素,將該元素移到下一位置
- 重複步驟3,直到找到已排序的元素小於或者等於新元素的位置
- 將新元素插入到該位置後
- 重複步驟2~5
插入排序的時間複雜度為O(n2),它是一種穩定的排序演算法,它的優點是插入排序比較簡單,並且在少量元素的時候表現較好。
插入排序的缺點是它的時間複雜度為O(n2),在大量元素的時候表現較差。
總結來說,插入排序是一種簡單的排序演算法,它的時間複雜度為O(n2),它是一種穩定的排序演算法,它的優點是插入排序比較簡單,並且在少量元素的時候表現較好,但是它的缺點是它的時間複雜度為O(n2),在大量元素的時候表現較差。