zoukankan      html  css  js  c++  java
  • js冒泡排序的两种实现方式

    冒泡排序的实现:

    1. 如果数组不存在或者数组长度小于2直接return

    2. 使用第一个for循环界定排序的范围,每一轮循环过后,数组中最大的那个数组一定会被放在最后一个,所以在下一轮进行比较时,应该排除最后一个值

    2. 使用第二层for循环,遍历在第一层循环中界定范围的数组,比较当前元素和下一个元素的大小,如果当前元素大就交换

    冒泡排序的时间复杂度

    1. 平均时间复杂度

    O(N^2);

    2. 最坏时间复杂度

    O(N^2)

    3. 最好时间复杂度

    O(N)

    js实现

    一:

    function bubbleSort(arr) {
       if(arr === null || arr.length <2) return
       for(let end = arr.length -1; end > 0;  end--){
           for(let i=0; i< end; i++){
                if(arr[i] > arr[i+1]){
                      swap(arr,i ,i+1)  
                 }
           }
        }
    }
    
    
    function swap(arr, i, j){
        let temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }

    二:

    function bubbleSort2(arr) {
         if(arr === null || arr.length < 2) return;
         for(let i=0; i < arr.length - 1; i++ ) {
               for(let j=0; j < arr.length-1-i; j++) {
                    if(arr[j] > arr[j+1] {
                            swap(arr, j, j+1)
                     }
               }
         }
    }
    
    
    function swap(arr, i, j){
          let temp = arr[i];
          arr[i] = arr[j];
          arr[j] = temp;
    }
  • 相关阅读:
    基于proteus的数字电路设计
    AXI4自定义FPGA外设理论基础
    FPGA 原语之一位全加器
    FPGA原语初步试验
    PS的流水灯设计分析
    vivado2019操作之约束文件
    http 笔记1
    编写有效用例-笔记
    接口测试学习积累1
    模拟器学习
  • 原文地址:https://www.cnblogs.com/zhang-jiao/p/14388810.html
Copyright © 2011-2022 走看看