两种排序的方法 冒泡法 插入法 封装版

  冒泡排序;封装版;逐个逐个比较,每一轮结束的时候都是最大的在后面,尽量减少循环次数

  bubbling()  方法  参数一:必填  需要排序的数组

  function bubbling(&$a){
    $num=count($a)-1;
    for($i=$num;$i>0;$i--){
      for($j=0;$j<$i;$j++){
        if($a[$j]>$a[$j+1]){
          $tmp=$a[$j];
          $a[$j]=$a[$j+1];
          $a[$j+1]=$tmp;
        }
      }
    }
  }
  bubbling($arr);

  JavaScript 的冒泡排序写法:  

  var arr = [1,20,15,90,52,13,16,42,68,25];
  function fn(arr){
    var cont = arr.length-1;
    var temp = null;
    for(var i=cont;i>0;i--){
      for(var j=0;j<i;j++){
        if(arr[j]>arr[j+1]){
          temp = arr[j];
          arr[j] = arr[j+1];
          arr[j+1] = temp;
        }
      }
    }
  }
  fn(arr);
  console.log(arr);

  插入排序:把第一个当最小的,比较后面的数

  insert()  方法         参数一:必填  需要排序的数组

  function insert(&$a){
    $num=count($a)-1;
    for($i=0;$i<$num;$i++){
      $temp=$a[$i];
      for($j=$i;$j<=$num;$j++){
        if($temp>$a[$j]){
          $temp=$a[$j];
          $a[$j]=$a[$i];
          $a[$i]=$temp;
        }
      }
    }
  }
  insert($arr);

   JavaScript 的 插入排序写法

  var arr = [1,20,15,90,52,13,16,42,106,35]; 
  function insert(arr){
    var num=arr.length-1;
    for(var i=0;i<num;i++){
      var temp=arr[i];
      for(var j=i;j<=num;j++){
        if(temp>arr[j]){
          temp=arr[j];
          arr[j]=arr[i];
          arr[i]=temp;
        }
      }
    }
  }
  insert(arr);
  console.log(arr);



原文地址:https://www.cnblogs.com/shangjun6/p/10751023.html