zoukankan      html  css  js  c++  java
  • 数组的排序方法

    1.冒泡排序法

      <script>
        var arr = [3, 5, 1, 8, 2, 9, 4];
        //i控制的是循环多少趟
        for (var i = 0; i < arr.length - 1; i++) {
          //假设当前的数据是已经排好序的
          var flag = true;
          //j控制的是每一次的比较,j和j+1比较,说明,j取到arr.length-1就可以了
          //外循环i每执行一次,就会有i个值排好序,所以每一次比较的次数就为arr.length-1-i
          for (var j = 0; j < arr.length -1 - i; j++) {
            //如果前一项比后一项大,两两交换位置
            if (arr[j] > arr[j + 1]) {
              var temp = arr[j + 1];
              arr[j + 1] = arr[j];
              arr[j] = temp;
    
              //如果发生交换位置,说明没有排好序
              flag = false;
            }
          }
          //每一次比完看flag的值,如果是true,说明已经排好序,结束循环
          if(flag){
            break;
          }
        }
        console.log(arr);
      </script>

    2.插入排序法

      <script>
        var arr = [3, 5, 1, 8, 2, 9, 4];
        //插入排序法
        for (var i = 1; i < arr.length; i++) {
          //从第二个数开始
          var temp = arr[i];
          //j表示从temp的前一个数开始,依次减减去比较
          for (var j = i-1; j >= 0; j--) {
            //如果当前值比它的前一项小
            if(temp < arr[j]){
              //将前一项的位置往后移动一位
              arr[j+1] = arr[j];
            }
            else{
              //如果不满足,结束循环
              break;
            }
          }
          //当内部循环结束的时候,给temp插到对应的值
          arr[j+1] = temp;
        }
        console.log(arr);
  • 相关阅读:
    HTML标签
    Web标准
    Web服务器 (获取域名)
    网站favicon.ico 图标
    模块化
    外边距
    h5css产品模块设计
    用策略模式(自定义注解+包扫描)解决if else 太多的问题
    方法区 永久代 元空间 常量池
    javac jar java
  • 原文地址:https://www.cnblogs.com/z-lin/p/10946925.html
Copyright © 2011-2022 走看看