原创

JavaScript—冒泡排序


  • 一种简单的排序算法 (字节 京东 百度等大厂会问到算法,比如排序有几种算法)

  • 冒泡排序,重复走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复进行直到没有再需要交换,即该数列已经排序完成

  • 此算法名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端

  • 如[2, 3, 1,4,5]经过排序成为[1,2,3,4,5]或[5,4,3,2,1]

    1. 一共需要的趟数 用外层for循环

      • 5个数据一共要走4趟,长度即数组长度减去1,arr.length -1
    2. 每一趟交换次数 用内层循环

      • 第一趟交换4次 第二趟3次,以此类推,长度即数组长度减去次数(但次数从0次开始的,所以最终 arr.length-i-1)
    3. 最后交换两个变量即可

       let arr = [5, 1, 3, 4, 2]
       for (let i = 0; i < arr.length - 1; i++) {
         for (let j = 0; j < arr.length - i - 1; j++) {
           // 开始交换 前提第一个数大于第二个数
           if (arr[j] > arr[j + 1]) {
             // 交换两个变量
             let temp = arr[j]
             arr[j] = arr[j + 1]
             arr[j + 1] = temp
           }
         }
       }
       console.log(arr)
      
  • 作者:管理员(联系作者)
  • 发表时间:2023-12-21 09:54
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 公众号转载:请在文末添加作者公众号二维码
  • 评论