插入排序(JS代码)
1、从数组第2个元素开始抽取元素。
2、把它与左边第一个元素比较,如果左边第一个元素比它大,则继续与左边第二个元素比较下去,直到遇到不比它大的元素,然后插到这个元素的右边。
3、继续选取第3,4,….n个元素,重复步骤 2 ,选择适当的位置插入。
冒泡、选择都是把未排序的和未排序的进行比较换位 而插入排序的思想是把未排序的和已经排好序的进行比较换位
Array.prototype.insertSort = function() { let len = this.length for (let j=0; j<len; j++) { for (let i=j+1; i>0; i--) { if (this[i] < this[i-1]) { // 这里开始和左边已排好序的进行比较,如果小于前面的就换位 let tempnum = this[i] this[i] = this[i-1] this[i-1] = tempnum } else { // 这时候最大的已经在最右边了,没必要再和前面比了 break } } } }