zoukankan      html  css  js  c++  java
  • js冒泡排序

    冒泡排序:

    • 比较相邻的元素,根据排序从小到大还是从大到小判断是否交换,一趟下来,有一个已排好序;如果遇到某一趟数据已经没有出现交换,说明已是有序数组,退出即可
      function bubble(arr){
        if(!(Array.isArray(arr))) {
          alert('数据类型有误,请传入数组');
          return;
        }
        if(arr.length === 0) {
          console.log('数组为空');
          return arr;
        }
        // count记录比较趟数
        let count=0;
        // 外层循环,控制趟数,每一次找到一个最大值
        for(var i=0;i<arr.length-1;i++){ // 比较趟数
        // 记录是否有交换,如果一趟比较下来没有交换说明已经是有序的了
          let isExchange = false; 
          // 内层循环,控制比较的次数,并且判断两个数的大小
          for(var j=0; j< arr.length-1-i;j++){
             // 如果前面的数大,放到后面(从小到大的冒泡排序)
            if(arr[j] > arr[j+1]){
              let temp = arr[j];
              arr[j] = arr[j+1];
              arr[j+1] = temp;
              isExchange = true;
            }
          }
          count++
          if(!isExchange) {
            break;
          }
        }
        console.log(count);
        return arr;
      }
      const tempArr = [1,3,2,5,7,5,9,8, 11,87,0];
      const returnArr = bubble(tempArr);
      console.log(returnArr , 'returnArr');
      console.log(tempArr, 'tempArr');
    

    参考&感谢各路大神

    冒泡
    宝剑锋从磨砺出,梅花香自苦寒来。
  • 相关阅读:
    ODBC是什么
    node学习连接和网站
    MongoDB--连接客户端和服务
    css页面布局--三栏(两边固定中间自适应&两边自适应中间固定)
    MongoDB--搭建mongodb服务器
    MongoDB--编译文件
    MongoDB--运行环境
    Ubuntu下搜狗输入法乱码
    从命令行控制计算机屏幕
    CPU风扇转速异常
  • 原文地址:https://www.cnblogs.com/haimengqingyuan/p/15718552.html
Copyright © 2011-2022 走看看