是简单排序中效率最好的
思路
插入排序的思想的核心就是局部有序
局部有序的含义:
在一个队列中的人,我们选择其中一个作为标记的队员。
在这个标记的队员左边的所有队员已经是局部有序的
这意味的,有一部分人是按顺序排好的,有部分人还没有排序。
function insertSort(nums){
// 外层循环,从第0个位置开始获取数据,向前面局部有序进行插入
for(let i = 0;i < nums.length;i++){
// 内层循环,获取i的位置的元素,和前面的数据依次进行比较
let temp = nums[i]
let j = i
// 比该值大的元素往后移
while(nums[j - 1] > temp && j > 0){
nums[j] = nums[j - 1]
j--
}
// 将j位置上的数据,放置temp就可以
nums[j] = temp
}
}
时间复杂度:o(n^2)