Insertion Sort
演算法原理:
- 將數組分為已排序和未排序兩部分
- 從未排序部分取出一個元素
- 在已排序部分找到適當的位置插入
- 重複步驟2-3,直到所有元素都排序完成
時間複雜度分析:
- 最壞情況(Worst Case): O(n²)
- 當數組完全逆序時
- 每個元素都需要移到最前面
- 比較和移動次數最多
- 最好情況(Best Case): O(n)
- 當數組已經排序時
- 每個元素只需要比較一次
- 不需要移動元素
- 平均情況(Average Case): O(n²)
- 對於隨機排列的數組
- 平均需要移動和比較 n²/4 次
空間複雜度:
- O(1),只需要一個臨時變量存儲 key
1 | static void InsertionSort(int[] arr) |
本部落格所有文章除特別聲明外,均採用CC BY-NC-SA 4.0 授權協議。轉載請註明來源 YouChen's Blog!