前端常用算法笔记-插入排序
前端常用算法笔记-插入排序(insertSort)
首先固定函数名:insertSort
插入排序的原理:类似于打扑克摸牌排序,将新摸的牌与手里现有的牌比较,然后放到合适位置就可以。
关键函数:
splice()
数组中添加或删除元素
unshift()
数组最前处添加元素
整个函数有两个for循环组成:
第一层循环取出原数组未排序的数组。
第二层循环与新数组的每个进行比较。
在执行循环前需要定义空数组,并且将原数组的第一个元素添加进去。
具体代码:
/*
插入排序
由小到大
*/
function insertSort(arr){
//设置保存结果的数组
let res=[];
//将第一个存入结果数据
res.push(arr[0])
//循环比较其他数
for(let i=1;i<arr.length;i++){
//A为数组中当前取出的数
let A=arr[i];
//循环比较结果中的每个数
for(let j=res.length-1;j>=0;j--){
//B为结果中当前比较的数
let B=res[j];
//如果取出的数比结果中的大,插入其后面
if(A>B){
res.splice(j+1,0,A);
break;
}
//如果比较到第一个,将其插入数组最前
if(j===0){
res.unshift(A);
}
}
}
//输出结果
console.log(res);
return res;
}
let arr = [13,121,325,757,7,89,93,2324,21,5,232,57,9];
insertSort(arr);