2rever的前端小站

js冒泡排序

Word count: 213 / Reading time: 1 min
2018/10/23 Share

冒泡排序

  • 速度较慢,速度为 O(n^2)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    //冒泡排序

    //循环控制趟数,i是趟数-1
    function bubble(array){
    for (var i = 0; i < array.length; i++) {
    //每一趟里面:要对比所有的数据进行交换,把大的值交换到后面的位置
    for (var k = 0; k < array.length - i - 1; k++) {
    //进行判断大小然后交换两个数据
    if (array[k]>array[k+1]) {
    var temp = array[k]
    array[k] = array[k+1]
    array[k+1] = temp
    }
    }
    }
    return array
    }
  • 冒泡排序

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    //稳定 n*n
    function bubbleSort(ary, comparator) {
    var l = ary.length
    var swaped
    for(var i = l - 1; i >= 0; i--) {
    swaped = false
    for(var j = 0; j < i; j++) {
    // if (predicate(ary[j]) > predicate(ary[j + 1])) {
    if (comparator(ary[j], ary[j+1]) > 0) {
    swaped = true
    swap(ary, j, j + 1)
    }
    }
    if (!swaped) {
    break
    }
    }
    return ary
    }
CATALOG
  1. 1. 冒泡排序