插入排序

插入排序每次排一个数组项,以此方法构建最后的排序数组

思路:从数组的第二项开始,以此与前一项进行比较,如果比前一项大,则正确排序,如果没有,则交换位置继续与前一位比较,至排序正确。

function insertSort(array){
    var length = array.length,
        temp;
    // 我们默认第一位是已经排序的,所以从第二位(索引为1)开始;
    for(var i = 1; i < length; i++){
        j = i;
        temp = array[i];  // 保存当前要排序的值
        while(j > 0 && array[j - 1] > temp){  // 与当前项前面的项进行比较,
            // 若当前项比前一项小,则交换位置,并继续与前一项比较
            array[j] = array[j - 1];
            j--;
        }
        array[j] = temp;   // 将当前项的值插入到指定位置
    }
}
排序小型数组时,此算法比选择排序和冒泡排序的性能好;