首页 > 代码库 > PHP学习笔记十二【数组排序】

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;      }  }?>

 

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