顾名思义,他是不断的将每个元素向前比较插入到合适的位置的一个算法
算法流程:
1、遍历一次序列
2、在遍历到的元素不断地向前比较交换直到合适的位置
代码
**
function InsertSort(nums){for (let i = 1; i < nums.length; i++) {let k = iwhile(k > 0 && nums[k - 1] > nums[k]){swap(nums, k - 1, k-- )}}return nums}
时间复杂度(O(n) - O(n^2)) 平均O(n^2)
空间复杂度(O(1))
**
最好情况:已经是排序的序列了
最坏情况:逆序序列
