php几种常用的算法

  1 <?php
  2 
  3 // 选择排序
  4 
  5 function select_sort($arr)
  6 
  7 {
  8 
  9     $count = count($arr);
 10 
 11     for ($i = 0; $i < $count; $i ++) {
 12 
 13         $k = $i;
 14 
 15         for ($j = $i + 1; $j < $count; $j ++) {
 16 
 17             if ($arr[$k] > $arr[$j])
 18 
 19                 $k = $j;
 20 
 21             if ($k != $i) {
 22 
 23                 $tmp = $arr[$i];
 24 
 25                 $arr[$i] = $arr[$k];
 26 
 27                 $arr[$k] = $tmp;
 28 
 29             }
 30 
 31         }
 32 
 33     }
 34 
 35     return $arr;
 36 
 37 }
 38 
 39  
 40 
 41 // 插入排序
 42 
 43 function insert_sort($arr)
 44 
 45 {
 46 
 47     $count = count($arr);
 48 
 49     for ($i = 1; $i < $count; $i ++) {
 50 
 51         $tmp = $arr[$i];
 52 
 53         $j$i - 1;
 54 
 55         while ($arr[$j] > $tmp) {
 56 
 57             $arr[$j + 1] = $arr[$j];
 58 
 59             $arr[$j] = $tmp;
 60 
 61             $j;
 62 
 63         }
 64 
 65     }
 66 
 67     return $arr;
 68 
 69 }
 70 
 71 // 快速排序法
 72 
 73 function quick($array)
 74 
 75 {
 76 
 77     if (count($array) <= 1) {
 78 
 79         return $array;
 80 
 81     }
 82 
 83     $key = $array[0];
 84 
 85     $l = array();
 86 
 87     $r = array();
 88 
 89     for($i=1;$i {
 90 
 91         
 92 
 93         if ($array[$i] <= $key) {
 94 
 95             $l[] = $array[$i];
 96 
 97         } else {
 98 
 99             $r[] = $array[$i];
100 
101         }
102 
103     }
104 
105     
106 
107     $l = quick($l);
108 
109     $r = quick($r);
110 
111     return array_merge($l, array(
112 
113         $key
114 
115     ), $r);
116 
117 }
118 
119  
120 
121 //冒泡排序
122 
123 function maopao($arr)
124 
125 {
126 
127     $n = count($arr);
128 
129     for($j=0;$j<$n-1;$j++)
130 
131     {
132 
133         for($i=$j+1;$i<=$n-1;$i++) {
134 
135             if($arr[$j]>$arr[$i])
136 
137             {
138 
139                 $t = $arr[$i];
140 
141                 $arr[$i] = $arr[$j];
142 
143                 $arr[$j]=$t;
144 
145             }
146 
147         }
148 
149     }
150 
151     return $arr;
152 
153 }

 

posted on 2015-08-14 13:49  铁猛  阅读(300)  评论(0编辑  收藏  举报

导航