冒泡排序和选择排序

demo 演示

冒泡排序

    var arr = [9,10,5,78,99,34];
    for(var i = 0 ; i < arr.length-1; i++){ //外层循环控制比较的轮数
     for(var j = 0 ; j < arr.length-1-i; j++){
     	//比较的2个数的下标 j    j+1
       if(arr[j] > arr[j+1]){
         var temp = arr[j];
         arr[j] = arr[j+1];
         arr[j+1] = temp;
       }
     }
    }
    console.log(arr);

冒泡排序的优化代码

    //优化代码
    var arr = [5,9,10,78,99,90];
    var count= 0; //声明一个变量,用来记录比较的轮数。

    for(var i = 0 ; i < arr.length-1; i++){ //外层循环控制比较的轮数
      //假设在这一轮的时候,已经排好序了。
      var flag = true;

      for(var 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;
          flag = false; //假设失败
        }
      }

      //如果到了这里,flag的值还是true,说明假设成功。
      if(flag == true){
        break;
      }

      count++;
    }

    console.log(arr);
    console.log(count);

选择排序

    var arr = [9,10,5,78,99,34];
    for(var i= 0;i<arr.length-1;i++){
      for(var j=i+1;j<arr.length;j++){
          if(arr[j] > arr[i]){
          var temp = arr[j];
          arr[j] = arr[i];
          arr[i] = temp;
        }
      }
    }
    console.log(arr);

还可以用数组的sort(func)方法

posted on 2017-12-14 20:31  ouruixi  阅读(229)  评论(0)    收藏  举报

导航