插入排序其实和玩牌很简单,在玩牌的时候,我们会自己给抓到的牌排个序,从小到大的顺序,如果新抓的那个牌比当前手里的牌小,会插到这张牌的前面
其实可以总结为一句话:
只要会玩牌,就会插入排序
下面我画了张图,可以会更好理解:
话不多说,放代码:
//创建一个插入函数
function insert(ary){
//创建一个新数组来
let handelle=[]
handelle.push(ary[0])
//从第二项开始依次抓牌,一直到把台面上的牌抓光(不用抓第一张牌)
for(var i=1;i<ary.length;i++){
//拿到当前抓到的牌
var A=ary[i]
//循环手里的牌
for(var j=handelle.length-1;j>=0;j--){
//拿到当前手里要做判断的那张牌
var B=handelle[j]
//如果前一张牌大于这张牌
if(A>B){
//在这个数的前面插入
handelle.splice(j+1,0,A)
//结束循环
break
}
//特殊情况,如果正好判断到第一张,已经是最小的了,就直接在当前插入
if(j===0){
handelle.unshift(A)
}
}
}
//返回这个新数组,【因为自始至终我们都在把新的值传入到新的数组中】
return handelle
}
//创建一个数组
let ary=[13,8,24,9,1]
//调用插入排序函数
var a=insert(ary)
//打印
console.log(a)