PHP学习笔记【12】--PHP数组排序

  
  
  
  
  1. <?php 
  2.     //数组的排序 
  3.     //排序分为内部排序和外部排序 
  4.      
  5.     //数据全部在内存中的排序叫内部排序 
  6.          
  7.     //数据量太大的话,无法全部加载到内存中,需要借助外部存储设备进行排序,叫做外部排序 
  8.          
  9.     //内部排序分类:1,冒泡排序2,快速排序3,选择排序;4, 
  10.     $arr=array(3,1,5,7,3,123,54); 
  11.     print_r($arr); 
  12.     echo "<br/>"
  13.      
  14.     //冒泡排序 
  15.     function sortM(&$a){ 
  16.         $l=count($a); 
  17.         for($x=1;$x<$l;$x++){ 
  18.             for($y=$x;$y<$l;$y++){ 
  19.                 if($a[$y]<$a[$y-1]){ 
  20.                     $temp=$a[$y]; 
  21.                     $a[$y]=$a[$y-1]; 
  22.                     $a[$y-1]=$temp
  23.                 } 
  24.             } 
  25.         } 
  26.     } 
  27.     //sortM($arr); 
  28.      
  29.     //选择排序 
  30.     function selectSort(&$arr){ 
  31.         $l=count($arr); 
  32.         for($v=0;$v<$l;$v++){ 
  33.             $minIndex=$v
  34.             for($x=$v;$x<$l;$x++){ 
  35.                 if($arr[$x]<$arr[$minIndex])$minIndex=$x
  36.             } 
  37.             $temp=$arr[$minIndex]; 
  38.             $arr[$minIndex]=$arr[$v]; 
  39.             $arr[$v]=$temp
  40.         } 
  41.     } 
  42.     //selectSort($arr); 
  43.      
  44.     //插入排序 
  45.     function insertSort(&$arr){ 
  46.          
  47.         for($v=1;$v<count($arr);$v++){ 
  48.             //准备要插入的数据 
  49.             $temp = $arr[$v]; 
  50.             $index=$v-1; 
  51.             while($index>=0){ 
  52.                 if($arr[$index]>$temp){ 
  53.                     $arr[$index+1]=$arr[$index]; 
  54.                     $index--; 
  55.                 }else
  56.                     $arr[$index+1]=$temp
  57.                     break
  58.                 } 
  59.             } 
  60.             if($index==-1) 
  61.             $arr[0]=$temp
  62.         } 
  63.          
  64.     } 
  65.     insertSort($arr); 
  66.      
  67.      
  68.      
  69.      
  70.      
  71.      
  72.      
  73.      
  74.     print_r($arr); 
  75.      
  76.      
  77.      
  78.      
  79.      
  80. ?> 

 

你可能感兴趣的:(冒泡排序,插入排序,php数组排序,php学习笔记)