插入排序
概念
对于少量元素的排序,它是一个有效的算法
原理
将未排序的元素一个一个的插入到有序的集合中,插入时把所有有序集合从后向前扫一遍找到合适的位置插入
优缺点
优点:数组越有序,效率越高,对比次数少,在对比过程中一旦发生了不交换的情况,那么当前数据的位置就固定了。
缺点:在数据量较少的时候会使用插入排序
代码
def insert_sort(arr):
for i in range(1,len(arr)):
for j in range(i,0,-1):
if arr[j] < arr[j-1]:
arr[j],arr[j-1]=arr[j-1],arr[j]
复杂度
时间复杂度 | |
---|---|
最优 | O(N) |
最差 | O(N²) |
平均 | O(N²) |
空间复杂度 | O(1) |
稳定性 | 稳定 |