PHP学习笔记十二【数组排序】

<?php
 $arr=array(0,5,-1);
 $temp=0;
 for($i=0;$i<count($arr)-1;$i++)
 {
    for($j=0;$j<count($arr)-1-$i;$j++)
    {
       if($arr[$j]>$arr[$j+1])
       {
          $temp=$arr[$j];
          $arr[$j]=$arr[$j+1];
          $arr[$j+1]=$temp;
       }
    }
  }
 foreach($arr as $val)
 {
     echo "<br>".$val;
 }
   selectSort($arr);
   print_r($arr);
   InsertSort($arr); 
   print_r($arr);
 
 //选择排序
 function selectSort(&$arr)
 {
         $temp=0;
         for($i=0;$i<=count($arr)-1;$i++)
         {
             //假设$i就是最小的数
             $minval=$arr[$i];
             //记录我认为的最小数的下标
             $minIndex=$i;
             for($j=$i+1;$j<count($arr);$j++)
             {
                //说明我们认为的最小值,不是最小
                if($minval>$arr[$j])
                {
                  $minval=$arr[$j];
                  $minIndex=$j;
                }
                //最后进行交换
                $temp=$arr[$i];
                $arr[$i]=$arr[$minIndex];
                $arr[$minIndex]=$temp;
             }
             
         }
 }
 
  //插入排序
  function InsertSort(&$arr)
  {
     //先默认下标为0这个数已经有序
      for($i=0;$i<count($arr);$i++)
      {
      //$insertVal是准备插入的数
         $insertVal=$arr[$i];
         //准备先和$insertIndex比较
         $inserIndex=$i-1;
         //如果这个条件满足,说明,我们还没有找到合适的位置
         while($inserIndex>0&&$insertVal<$arr[$inserIndex])
         {
           //同时把数后移
           $arr[$inserIndex+1]=$arr[$inserIndex];
           $inserIndex--;
           
         }
         //插入(这时就给$insertVal找到适当的位置)
         $arr[$inserIndex+1]=$insertVal;
      }
  }
?>
原文地址:https://www.cnblogs.com/sumg/p/3940628.html