简单的算法

//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);

原文地址:https://www.cnblogs.com/zxr8023/p/6055530.html