12.28---01冒泡排序

41 阅读1分钟

冒泡排序:

属于数组排序的算法之一

其实就是通过一种算法, 将 一个乱序的数组, 调整为指定顺序的数组(从大到小/从小到大)

什么是算法?

解决某一个问题最简单的方式 / 最高效的方式

准备一个乱序数组

    var arr = [9, 3, 6, 2, 4, 1, 8, 5, 7]
    console.log('原始数组: ', arr)
    

冒泡排序的核心: 对比数组前一项和后一项, 如果前一项的值较大, 那么就往后挪 (这个排序之后是按照从小到大的顺序)

      for (var i = 0; i < arr.length; i++) {
        if (arr[i] > arr[i + 1]) {
            var temp = arr[i]
            arr[i] = arr[i + 1]
            arr[i + 1] = temp
        }
    }
    console.log('1 轮冒泡排序后的数组: ', arr)

基础版

     for (var k = 0; k < arr.length; k++) {  // 决定执行几次 所谓的 冒泡排序
        for (var i = 0; i < arr.length; i++) {  // 拿到数组的前一项与后一项, 做一轮排序
            if (arr[i] > arr[i + 1]) {
                var temp = arr[i]
                arr[i] = arr[i + 1]
                arr[i + 1] = temp
            }
        }
    }

    console.log('冒泡排序后的数组: ', arr)

优化版

      for (var k = 0; k < arr.length - 1; k++) {
        for (var i = 0; i < arr.length - 1 - k; i++) {
            if (arr[i] > arr[i + 1]) {
                var temp = arr[i]
                arr[i] = arr[i + 1]
                arr[i + 1] = temp
            }
        }
    }