排序

51 阅读1分钟

选择排序

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

    
              第几次循环   假设谁是最小值     和谁交换    循环开始的值
       k == 0      1               0           0               1
       k == 1      2               1           1               2
      k == 2      3               2           2               3


    for (var k = 0; k < arr.length; k++) {
        var minIndex = k    // 假设当前最小数值 为 下标 0 的项
        for (var i = k + 1; i < arr.length; i++) {
            if (arr[minIndex] > arr[i]) {
                minIndex = i++
            }
        }
        交换 真实最小的值  与 下标 0 的值
        var temp = arr[k]
        arr[k] = arr[minIndex]
        arr[minIndex] = temp
    }
    console.log('选择排序结束后的 arr: ', arr)
    
    
    
    

冒泡排序 已知一个排序好的数组 - 将数字按照原有顺序插入到数组内 javascript var origin = [10, 20, 30, 40, 50]; var n = 11; code run here ...

     [ 10, 20, 30, 40, 50, 11]

     结果: [ 10, 11, 20, 30, 40, 50 ]
     ```


     1. 插入到数组内
     2. 将数组排序
    var arr = [10, 20, 30, 40, 50];
    var n = 11;

    arr.push(n) // 1. 
     2. 冒泡排序
    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
            }
        }
    }
    console.log('冒泡排序结束后的arr: ', arr)