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

使用冒泡排序对三级数组进行排序,比如书的章节排序。
原始数据为:
["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;
}

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容