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;

      }

  }

?>

 

你可能感兴趣的:(学习笔记)