写在前面
插入排序是将序列看做已排序部分和未排序部分,起始已排序部分为第一个元素,后面的元素为未排序部分,循环未排序部分,将其插入到已排序部分,每一趟循环已排序部分长度加一,未排序部分长度减一。
代码
function insertSort(arr) {
//遍历未排序部分
for (let i = 1,l=arr.length; i<l; i++){
//比较当前未排序的元素和已排序部分所有元素大小
for(let j=0;j<i;j++){
//若小于某个已排序元素,则将其插入到已排序元素之前。
if(arr[i]<arr[j]){
let temp = arr[i] //保存当前未排序元素
// 已排序元素要被插入的那个位置之后的元素整体右移
for(let n = i;n>j;n--){
arr[n] = arr[n-1]
}
arr[j] = temp
}
}
}
return arr
}