插入排序(Insertion Sort)是一種簡單直觀的排序算法,其工作原理是將待排序的數據分為已排序和未排序兩部分。初始時,已排序部分只包含數組的第一個元素,而未排序部分包含剩下的元素。插入排序的過程可以概括為:
選擇有序序列:將待排序序列的第1個元素作為有序序列,剩餘元素作為未排序序列。
插入元素:從未排序序列中選擇第1個元素,與有序序列中的元素依次比較,找到合適的位置插入。在比較過程中,如果已排序部分的元素大於當前元素,就將已排序部分的元素向後移動一位,為當前元素騰出插入位置。
重複步驟:重複上述步驟,直至未排序序列無元素可進行插入時,停止操作,此時序列全部有序。
插入排序的特點包括:
時間複雜度:插入排序的時間複雜度為O(n^2),其中n是待排序數組的長度。在最壞情況下,即待排序數組逆序排列時,時間複雜度達到最大值。
穩定性:插入排序具有穩定性,相等元素的相對順序在排序後保持不變。
適用性:適用於小規模數據和部分有序數據的排序需求。
通過上述步驟和特點的描述,我們可以看到插入排序是如何通過逐步將未排序的元素插入到已排序的部分來完成整個排序過程的。