插入排序算法算是比较简单的一种排序算法。其算法原理如下:
从数组第i(i>=2)个元素开始,从右往左依次与第一、第二、。。第i + 1张牌比较,如果 第j位数字小于它,第j+1位大于它,就将该元素插入到第j+1位。
也可以描述为:我们假设桌子上有一副扑克牌,左手为空,右手每次拿起一张扑克牌,和左手的手牌从右向左进行比较,(假设为升序)将其插入左手牌对应的位置,保证左侧的牌都小于它,右侧的牌都大于它。重复上述动作,直到桌面上没有牌。
代码如下
<script>
var arry = []
for (let i = 0; i < 20; i++) {
arry[i] = parseInt(Math.random() * 100)
}
console.log('随机生成数组')
console.log(arry)
var key = 0
for (let i = 1; i < arry.length; i++) {
key = arry[i]
let j = i - 1
for (; j > -1; j--) {
if (arry[j] < key) {
break
}
arry[j + 1] = arry[j] //将比第i位大的数字都往后挪动一位
}
arry[j + 1] = key
}
console.log('排序结果')
console.log(arry)
</script>
排序结果如下图