像整理桌面一樣學插入排序:原理與代碼
本文以“整理桌面”類比插入排序,核心思想是將元素逐個插入已排序部分的正確位置。基本步驟爲:初始化第一個元素爲已排序,從第二個元素開始,將其與已排序部分從後向前比較,找到插入位置後移元素,再插入當前元素。 以數組 `[5,3,8,2,4]` 爲例:初始已排序 `[5]`,插入3(移5後)得 `[3,5]`;插入8(直接追加)得 `[3,5,8]`;插入2(依次後移8、5、3,插入開頭)得 `[2,3,5,8]`;插入4(後移8、5,插入3後)完成排序。 代碼實現(Python)通過雙層循環:外層遍歷待插入元素,內層從後向前比較並後移元素。時間複雜度O(n²),空間複雜度O(1),適用於小規模數據或接近有序數據,是原地排序且無需額外空間。 該排序類比直觀體現“逐個插入”本質,對理解排序邏輯有幫助。
閱讀全文