1 <?php
2 //二分法查找数组中的某个元素
3 function search($array,$k,$low = 0, $high = 0){
4 if(count($array) != 0 && $high == 0){
5 $high = count($array);
6 }
7 if($low <= $high){
8 $mid = intval(($low + $high)/2);
9 if($array[$mid] == $k){
10 return $mid;
11 }else if($array[$mid] < $k){
12 return search($array,$k,$low = 0, $mid +1);
13 }else{
14 return search($array,$k,$low = 0, $mid +1);
15 }
16 }
17 return '你找的元素不存在';
18 }
19
20 //快速查找数组中的某个元素
21 function search($array,$k){
22 $count = count($array);
23
24 for($i = 0;$i<= $count;$i++){
25 if($array[$i] == $k){
26 break;
27 }
28 }
29
30 if($i < $count) {
31 return $i;
32 }else{
33 return '你找的元素不存在';
34 }
35 }
36
37 //冒泡法查找数组中的某个元素
38
39 function search($array) {
40 $count = count($array);
41
42 for($i = 1;$i<$count;$i++) {
43 for($k = 0;$k<$count-1;$k++){
44 if($array[$k+1] < $array[$k]);
45 $tmp = $array[$k+1];
46 $array[$k+1] = $array[$k];
47 $array[$k] = $tmp
48 }
49 }
50 }
51
52 //快速排序法
53
54 function quick($array){
55 $count = count($array);
56 $base_num = $array[0];
57 $left_num = [];
58 $right_num = [];
59 for($i = 1;$i<$count;$i++){
60 if($array[$i]<$base_num){
61 $left_num[] = $array[$i];
62 }else{
63 $right[] = $array[$i];
64 }
65 }
66 $left_num = qucik($left_num);//递归处理
67 $right_num = quick($right_num);//递归处理
68 $array = array_merge($left_num,array($base_num),$right_num);
69 return $array
70 }
71 ?>