插入排序

首先留下第一个数,后面从第二个数开始,如果比前面的数大,那么保持顺序不变;如果比前面的数小,那么需要将后面的数与前面的数进行逐一比较,一旦遇到比他小的数,就插入到这个数的后面,不会继续跟前前面的数进行比较。

 function insertionSort(arr) {
     var temp;
     for(var o = 1; o < arr.length; o++) {
         temp = arr[o]
         var i = o -1;
         //如果后面的数比前面的大,那么它肯定比前前面的更大,因为前面的都是排好的,此时不用进入while循环
         //只有后面的比前面的小的时候才需要进入while循环与前面的所有的数进行比较
         while(i >= 0 && arr[i] > temp) {
             arr[i + 1] = arr[i]
             i--;
         }
         arr[i+1] = temp
     }
 }

你可能感兴趣的:(数据结构和算法)