美文网首页
生成随机6个不重复双色球并写一个冒泡排序算法

生成随机6个不重复双色球并写一个冒泡排序算法

作者: keknei | 来源:发表于2019-07-24 16:35 被阅读0次
    1. 首先我们生成6个不同的随机数
      我们利用set结构能去除重复的这个特性,来去重
    let s=new Set();
    while(s.size<6){
      let n=rnd(1,33);
      s.add(n);
    }
    
    function rnd(n,m){
      return parseInt(Math.random()*(m-n)+n);
    }
    
    1. 第一步生成了6个不同的随机数,然后我们进行排序,写一个冒泡排序算法
    /*
    当i=0的时候,里面的循环完整执行,从j=0执行到j=6,这也就是第一遍排序,结果是将最大的数排到了最后,这一遍循环结束后的结果应该是[8,15,88,55,76,21,39,94]
    当i=1的时候,里面的循环再次完整执行,由于最大的数已经在最后了,没有必要去比较数组的最后两项,这也是j<arr.length-1-i的巧妙之处,结果是[8,15,55,76,21,39,88,94]
    说到这里,规律就清楚了,每次将剩下数组里面最大的一个数排到最后面,当第一个循环执行到最后的时候,也就是i=6,此时,j=0,只需要比较数组的第一和第二项,比较完毕,返回。
    */
    function sortarr(arr){
      for(i=0;i<arr.length-1;i++){
          for(j=0;j<arr.length-1-i;j++){
              if(arr[j]>arr[j+1]){
                  var temp=arr[j];
                  arr[j]=arr[j+1];
                  arr[j+1]=temp;
              }
          }
      }
      //排完序后进行补零
      return arr.map(item=>{
        return zerofill(item,2);
      });
    }
    //补零
    function zerofill(num,n){
      let len=num.toString().length;
      while(len<n){
        num="0"+num;
        len++;
      }
      return num;
    }
    
    1. 最后调用排序函数,打印结果
    console.log(sortarr(Array.from(s)));
    

    相关文章

      网友评论

          本文标题:生成随机6个不重复双色球并写一个冒泡排序算法

          本文链接:https://www.haomeiwen.com/subject/okotrctx.html