zoukankan      html  css  js  c++  java
  • 0132 算法的概念、冒泡排序

    算法:观察执行过程,找到规律,转为代码。

    // 冒泡排序
    // var arr = [5, 4, 3, 2, 1];
    var arr = [4, 1, 2, 3, 5];
    // 外层循环管趟数 【5个元素,冒泡排序4趟,应该是arr.length - 2,结果一样】
    for (var i = 0; i <= arr.length - 1; i++) {
      for (var j = 0; j <= arr.length - i - 1; j++) { // 里面的循环管 每一趟的交换次数
        // 内部交换2个变量的值 前一个和后面一个数组元素相比较
        if (arr[j] < arr[j + 1]) {
          // [arr[j], arr[j+1]] = [arr[j+1], arr[j]]  // 利用解构
          var temp = arr[j];
          arr[j] = arr[j + 1];
          arr[j + 1] = temp;
        }
      }
      console.log(i);
    }
    console.log(arr);
    
    
    // 我的写法1
    var arr = [4, 1, 9, 2, 7, 3, 5];
    var len = arr.length;
    // i <= len - 2,i <= len - 1,结果都一样
    for (var i = 0; i <= len - 2; i++) {
      for (j = 0; j <= len - i - 1; j++) {
        if (arr[j] > arr[j + 1]) {
          var temp = arr[j];
          arr[j] = arr[j + 1];
          arr[j + 1] = temp;
        }
    
      }
    }
    console.log(arr); // [1, 2, 3, 4, 5, 7, 9]
    
    
    // 我的写法2
    var arr = [4, 1, 9, 2, 7, 3, 5];
    var len = arr.length;
    
    for (var i = 0; i < len; i++) {
      var temp;
      for (var j = i; j < len; j++) {
        if (arr[j] > arr[j + 1]) {
          temp = arr[j];
          arr[j] = arr[j + 1];
          arr[j + 1] = temp;
        }
      }
    }
    console.log(arr); // [1, 2, 3, 4, 5, 7, 9]
    
  • 相关阅读:
    人生的诗·260~264节
    唐诗宋词·151~155节
    人生的诗·270~274节
    人生的诗·265~269节
    人生的诗·255~259节
    唐诗宋词学习·146~150节
    唐诗宋词学习·156~160节
    加载时xml 报 未能映射路径"***.xml"
    我喜欢的语言总结语句
    关于图片延迟的一点思路
  • 原文地址:https://www.cnblogs.com/jianjie/p/12148617.html
Copyright © 2011-2022 走看看