原理:
- 将元素分为已排区间和未排区间
- 取未排区间的元素插入到已排区间的正确位置,保证已排区间顺序正确
function insertSort(arr){const len = ar.length;if(!len)return;for(let i=1;i<len;i++){const v = arr[i];let j = i-1;for(;j>=0;--j){if(arr[j]>v){arr[j+1] = arr[j];}else{break;}}arr[j+1] = v;// v最小的情况下,将数组插入到头;在v最大的情况下,恢复原结构}}
- 空间复杂度O(1) 是原地排序
- 是稳定排序
- 最好O(n)
- 最坏O(n)
- 平均O(n)
