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),在大量元素的時候表現較差。

Categorized in:

Tagged in: