美文网首页
冒泡排序以及其改进

冒泡排序以及其改进

作者: 海山城 | 来源:发表于2019-06-04 10:21 被阅读0次
    let array = [8, 3, 0, 32, 99, 1, 888, 23, 6, 5, 999, 1, 342, 3, 6, 23, 55]
    
    function bubbleSort(array) {
      for (let i = 0; i < array.length - 1; i++) {
        for (let j = 0; j < array.length - 1 - i; j++){
          if (array[j] > array[j + 1]) {
            let tmp = array[j + 1]
            array[j + 1] = array[j]
            array[j] = tmp
          }
        }
      }
      console.log("array", array)
    }
    
    // 改进冒泡排序1
    function bubbleSortNice(array) {
      let pos = 0;
      let length = array.length - 1
      for (let i = 0; i < array.length - 1; i++) {
        for (let j = 0; j < length; j++){
          if (array[j] > array[j + 1]) {
            let tmp = array[j + 1]
            array[j + 1] = array[j]
            array[j] = tmp
            pos = j
          }
        }
        length = pos
      }
      console.log("array", array)
    }
    
    // 改进冒泡排序2
    function bubbleSortNice2(arr) {
        let i = arr.length - 1;
        while (i > 0) {
            let pos = 0;
            for (let j = 0; j < i; j++) {
                if (arr[j] > arr[j + 1]) {
                    pos = j;
                    const temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
            i = pos;
        }
        console.log(arr);
    }
    
    console.time("bubbleSort")
    bubbleSort(array)
    console.timeEnd("bubbleSort")
    
    console.time("bubbleSortNice")
    bubbleSortNice(array)
    console.timeEnd("bubbleSortNice")
    
    console.time("bubbleSortNice2")
    bubbleSortNice2(array)
    console.timeEnd("bubbleSortNice2")
    
    运行时间

    相关文章

      网友评论

          本文标题:冒泡排序以及其改进

          本文链接:https://www.haomeiwen.com/subject/srflxctx.html