我爱编程

使用冒泡排序对多级数据进行排序

2018-04-08  本文已影响8人  氕氘氚0921

使用冒泡排序对三级数组进行排序,比如书的章节排序。
原始数据为:
["1.0.0", "10.1.1", "5.1.0", "3.0.0", "0.1.1", "14.1.0", "12.1.0", "20.0.0", "6.0.0"]
需要排序为:
["1.0.0", "3.0.0", "6.0.0", "20.0.0", "5.1.0", "12.1.0", "14.1.0", "0.1.1", "10.1.1"]

code:

function bubbleSort(arr) {
    var i = arr.length, j;
    var tempExchangVal;
    while (i > 0) {
        for (j = 0; j < i - 1; j++) {
            var info1 = arr[j];
            var p1 = info1.split(".")[2];
            var i1 = info1.split(".")[1];
            var f1 = info1.split(".")[0];

            var info2 = arr[j+1];
            var p2 = info2.split(".")[2];
            var i2 = info2.split(".")[1];
            var f2 = info2.split(".")[0];

            if (parseInt(p1) > parseInt(p2)) {
                tempExchangVal = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tempExchangVal;
            } else if (p1 === p2) {
                if (parseInt(i1) > parseInt(i2)) {
                    tempExchangVal = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = tempExchangVal;
                } else if (i1 === i2) {
                    if (parseInt(f1) > parseInt(f2)) {
                        tempExchangVal = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = tempExchangVal;
                    }
                }
            }
        }
        i--;
    }
    return arr;
}

使用该方法可以对多级数据结构进行排序。

上一篇 下一篇

猜你喜欢

热点阅读