数组排序

/**
 * 冒泡排序
 * @param arr
 */
sort(arr){
    for(let j = 0; j < arr.length - 1; j++){
        //两两比较,如果前一个比后一个大,则交换位置。
        for(let i = 0; i < arr.length - 1 - j; i++){
            if(arr[i] > arr[i+1]){
                let temp = arr[i];
                arr[i] = arr[i+1];
                arr[i+1] = temp;
            }
        }
    }
},

/**
 * 插入排序
 * @param arr
 * @returns {Buffer|WordArray|*|any[]|string}
 */
insertSort(arr){
    //假设第0元素是有序序列,第1元素之后是无序的序列。从第1元素开始依次将无序序列的元素插入到有序序列中
    for(var i=1; i<arr.length;i++){
        if(arr[i]<arr[i-1]){
            //取出无序序列中需要插入的第i个元素
            var temp = arr[i];
            //定义有序中的最后一个位置
            var j = i-1;
            arr[i] = arr[j];
            //比较大小,找到插入的位置
            while(j>=0&&temp<arr[j]){
                arr[j+1] = arr[j];
                j--;
            };
            //插入
            arr[j+1] = temp;
        }
    }
}

注:排序为升序排列,这种方法会改变原始数组

原文地址:https://www.cnblogs.com/maggieq8324/p/12313987.html