js几种数组排序及sort的实现

给出以下数组,并进行排序处理

var arr = new Array('1','3','8','2','3','5');

1、 插入法排序

Array.prototype.csSort = function() {
    var newarr = this;
    /** 1、 插入法排序
    * 插入发排序,即那数组的后边一项和前面一项对比,如果后面一项小于前面
    * 一项,则将两者位置互换,从数组第2个元素开始对比;如下示例
    */
    for (let i = 1; i < newarr.length; i++) {
        for (let j = i; j > 0; j--) {
            if (newarr[j] < newarr[j-1]) {
                let pre = newarr[j];
                newarr[j] = newarr[j-1];
                newarr[j-1] = pre;
            };
        };
    };
    return newarr;
}
console.log(arr.csSort().toString());

2、 冒泡法排序

Array.prototype.csSort = function() {
    var newarr = this;
    /** 2、 冒泡法排序
    * 插入发排序,即那数组的前一项和后一项对比,如果前面一项小于后面
    * 一项,则将两者位置互换,从数组第1个元素开始对比;如下示例
    */
    for (let i = 0; i < newarr.length; i++) {
        for (let j = 0; j < newarr.length; j++) {
            if (newarr[j] > newarr[j+1]) {
                let pre = newarr[j];
                newarr[j] = newarr[j+1];
                newarr[j+1] = pre;
            };
        };
    };
    return newarr;
}
console.log(arr.csSort().toString());

sort排序的实现原理

待更新......

猜你喜欢

转载自www.cnblogs.com/gaosong-shuhong/p/9342199.html