This article mainly introduces the PHP bubble sorting and quick sorting algorithms. Interested friends can refer to it. I hope it will be helpful to everyone.
The code is as follows:
$a=array('3','8','1','4','11','7'); print_r($a); $len = count($a); //从小到大 for($i=1;$i<$len;$i++) { for($j=$len-1;$j>=$i;$j--) if($a[$j]<$a[$j-1]) {//如果是从大到小的话,只要在这里的判断改成if($b[$j]>$b[$j-1])就可以了 $x=$a[$j]; $a[$j]=$a[$j-1]; $a[$j-1]=$x; } } print_r($a);j //另一种方法 从小到大 $b=array('4','3','8','9','2','1'); $len=count($b); for($k=1;$k<$len;$k++) { for($j=$len-1,$i=0;$i<$len-$k;$i++,$j--) if($b[$j]<$b[$j-1]){ //如果是从大到小的话,只要在这里的判断改成if($b[$j]>$b[$j-1])就可以了 $tmp=$b[$j]; $b[$j]=$b[$j-1]; $b[$j-1]=$tmp; } print_r($b); echo " "; } //下面的这个执行效率更高 function maopao($arr) { $len = count($arr); for($i=1; $i<$len; $i++)//最多做n-1趟排序 { $flag = false; //本趟排序开始前,交换标志应为假 for($j=$len-1;$j>=$i;$j--) { if($arr[$j]<$arr[$j-1])//交换记录 {//如果是从大到小的话,只要在这里的判断改成if($arr[$j]>$arr[$j-1])就可以了 $x=$arr[$j]; $arr[$j]=$arr[$j-1]; $arr[$j-1]=$x; $flag = true;//发生了交换,故将交换标志置为真 } } if(! $flag)//本趟排序未发生交换,提前终止算法 return $arr; } } $shuz = array('2','4','1','8','5'); $bb = maopao($shuz); print_r($bb); // 快速排序 function kuaisu($arr){ $len = count($arr); if($len <= 1){ return $arr; } $key = $arr[0]; $left_arr = array(); $right_arr = array(); for($i=1; $i<$len;$i++){ if($arr[$i] <= $key){ $left_arr[] = $arr[$i]; }else{ $right_arr[] = $arr[$i]; } } $left_arr = kuaisu($left_arr); $right_arr = kuaisu($right_arr); return array_merge($left_arr, array($key), $right_arr); } $arr = array(23,98,54,2,9,62,34); print_r(kuaisu($arr));
Summary: The above is the entire content of this article , I hope it can be helpful to everyone’s study.
Related recommendations:
Analysis of examples of floating point operation in PHP
PHP Example sharing of methods for obtaining WeChat access_token by scheduled tasks
PHP solution to obtain the real IP of the user client
The above is the detailed content of PHP bubble sort and quick sort algorithm. For more information, please follow other related articles on the PHP Chinese website!