• 简单的算法


    //1.冒泡排序:冒泡排序总共需要排序n - 1 趟,每趟比较 n -1 - 趟数 这么多次;每趟排序可能交换多次元素,找到其中一个的元素最终位置,每次比较都是相邻元素之间的大小比较。----最常用

            var oArr = [78,23,24,55,66,2,55,9,12,38];

    // 1冒泡排序

    // 从小到大排列

    // 因为不用跟自身比较,所以循环次数-1

            for (var i=0; i<oArr.length-1; i++) {

    // 因为每次比较,都会得出一个最大/最小数,被放置在了最右边,所以要-i

                 for (var j=0; j<oArr.length-1-i; j++) {

    // 如果前一个数,比后一个数大,那么交换位置

                    if (oArr[j] > oArr[j+1]) {

                      var temp = oArr[j];

                       oArr[j] = oArr[j+1];

                       oArr[j+1] =temp;

                      }

                  }

               }

             console.log(oArr);

     

     

     

    //2.sort 方法;js 数组里的一个方法,sort 可以实现排序,只要传递一个函数即可

            var arr = [15,342,448,1150,1831,920,10,50,78,100];

    //要求按照数字的从小到大排序

               arr.sort();

               console.log(arr);

             arr.sort(function(obj1,obj2){

               if(Number(obj1) < Number(obj2)){//前面数减去后面数

                 return -1;//desc          // -1 代表后面的数大

               }else if(Number(obj1) > Number(obj2)){

               return 1;//asc

             }else{

               return 0;//same

              }

     

            });

             console.log(arr);//打印从小到大排序,改变负1,则就可改变排序顺序

     

     

    //3.选择排序----最常用

     

          var arr = [8,6,14,5,0,1,54,7,3,12];

    //比较 n - 1 趟

     

            for(var i = 0 ; i < arr.length - 1 ; i ++){

    //假定第一个元素是 最大值

            var max = 0 ;//假定每次循环都要把第一个置为最大值,所以不能放到外面

    //找到了某一趟的最大值

            for(var j = 1 ; j < arr.length - i;j++){

            if(arr[max] < arr[j]){

                max = j;

              }

            }

    //放到合适的位置

            if(max != arr.length - i - 1 ){

    //交换着两个位置的元素

              var temp = arr[max];

              arr[max] = arr[arr.length - i- 1];

              arr[arr.length - i -1] = temp;

             }

     

          }

            console.log(arr);

  • 相关阅读:
    如何发布自定义的UI 组件库到 npmjs.com 并且编写 UI组件说明文档
    Go 包导入备忘
    Incorrect column count: expected 1, actual 5,JdbcTemplate queryForList 出错
    SpringJdbc持久层封装,Spring jdbcTemplate封装,springJdbc泛型Dao,Spring baseDao封装
    Java最快的maven仓库地址,国内Maven地址,超快的Maven地址
    SQLyog-12.4.2版下载,SQLyog最新版下载,SQLyog官网下载,SQLyog Download
    easyui datebox定位到某一个日期, easyui datebox直接定位到具体的日期, easyui datebox MoveTo方法使用
    Echarts调整图表上下左右的间距,Echarts调整柱状图左右的间距
    Spring整合Quartz定时任务执行2次,Spring定时任务执行2次
    Linux关闭Tomcat为什么要用Kill,而不是shutdown.sh
  • 原文地址:https://www.cnblogs.com/zxr8023/p/6055530.html
Copyright © 2020-2023  润新知