javascript/js插入排序代码

266 阅读1分钟

js插入排序原理

每一轮都从输入数据离删除掉一个元素,并将其正确插入到已经排序好的范围之内.
/**
 * js插入排序
 * @param {array} arr array to sort 
 * @param {number} n array.length
 */
function insertionSort(arr, n) {
    // 此方法改变原数组
    if (Array.isArray(arr) && arr.length >= 2 && n == arr.length) {
        let i, j, v;
        for (i = 1; i <= n - 1; i++) {
            v = arr[i]; // 左侧有序数组最大值
            j = i;
            // 从最循环元素与之前的有序数组关系比较 如果比此元素大则进行交换
            while (arr[j - 1] > v && j >= 1) {
                arr[j] = arr[j - 1];
                j--;
            }
            arr[j] = v;
        }
        return true;
    }
    return false;

}

javascript插入排序/js插入排序代码示例