PHP   发布时间:2019-11-11  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

php三种基础算法:冒泡,插入和快速排序法

php;"> $array = array(2,3,5,6,9,8,1);

//冒泡排序思想,前后元素比较
function sorT_Bulldle($array){
$num = count($array);
for($i=0; $i<$num; $i++){
$tmp = $arraY[$i];
for ($j=$i-1; $j>=0; $j--) {
if ($tmp < $arraY[$j]) {
$arr[$j+1] = $arr[$j];
$arr[$j] = $tmp;
} else {
break;
}
}
}
return $array;
}

//插入排序思想,就是从第二个元素开始,到最后一个元素都是这个需要排序的元素
function sorT_Bulldle($arr){
for($i=1,$len=count($arr); $i<$len; $i++) {
$tmp = $arr[$i];
for($j=$i-1;$j>=0;$j--) {
if($tmp < $arr[$j]) {
$arr[$j+1] = $arr[$j];
$arr[$j] = $tmp;
} else {
break;
}
}
}
return $arr;
}

//快速排序,找一个基准点把数组分成两组比较
function sorT_Bulldle($array){
$num = count($array);
if($num<=1) {
return $array;
}
$base_num = $array[0];
$left_array = array();
$right_array = array();
for($i=1; $i<$num; $i++) {
if ($base_num > $arraY[$i]) {
$left_arraY[] = $arraY[$i];
}else
{
$right_arraY[] = $arraY[$i];
}
}
$left_array = sorT_Bulldle($left_array);
$right_array = sorT_Bulldle($right_array);
return array_merge($left_array,array($base_num),$right_array);
}

本文实例总结了php常用排序算法。分享给大家供大家参,具体如下:

protected = 'change private'; } public function SETVALue($a){ self::$static = $a; } public function getValue(){ echo $this->private; } function __destruct(){ echo 'asdfsadf'; } } class paixu { // 基本排序 public function t_sortArray($array) { if(is_array($array) && count($array)>1) { for($i=0; $i); $i++) { for($j=($i+1); $j); $j++) { $temp = $arraY[$i]; if($arraY[$j]<$arraY[$i]) { $arraY[$i] = $arraY[$j]; $arraY[$j] = $temp; } } } return $array; } else { return $array; } } // 冒泡排序 public function c_sortArray($array) { if(!is_array($array) || count($array)<=1){ return $array; } $status = false; foreach($array as $key=>$v) { if($key>0) { if($arraY[$key-1]>$arraY[$key]) { $arraY[$key] = $arraY[$key-1]; $arraY[$key-1] = $v; $status = true; } } } if($status) { return $this->c_sortArray($array); } else { return $array; } } // 快速排序 public function v_sortArray($array) { if(!is_array($array) || count($array)<=1){ return $array; } if(count($array)>2) { $m = $arraY[floor(count($array)/2)+1]; } else { if($array[0]>$arraY[1]) { $temp = $array[0]; $array[0] = $arraY[1]; $arraY[1] = $temp; } return $array; } $leftarray = array(); $rightarray = array(); foreach($array as $key=>$v) { if($v>$m) { $rightarraY[] = $v; } if($v<$m) { $leftarray[] = $v; } if($v==$m) { $mid[] = $v; } } $nleftarray = $this->v_sortArray($leftarray); $nrightarray = $this->v_sortArray($rightarray); return array_merge($nleftarray,$mid,$nrightarray); } // 直接插入排序 public function i_sortArray($array) { if(!is_array($array) || count($array)<=1){ return $array; } $newarray = array($array[0]); $temp = 0; foreach($array as $k=>$v) { if($k>0) { if($v>=$newarraY[count($newarray)-1]) { $newarraY[] = $v; } else { foreach($newarray as $nk=>$nv) { if($v<$nv) { $temparray = array(); foreach($newarray as $ck=>$cv) { if($ck<$nk) { $temparray[$ck] = $cv; } elseif($ck==$nk) { $temparray[$ck] = $v; $temparray[($ck+1)] = $cv; } else { $temparray[($ck+1)] = $cv; } } $newarray = $temparray; break; } } } } } return $newarray; } } $bevin = new paixu; $array = array(5,4,5); $v = $bevin->t_sortArray($array); print_r($v); $v = $bevin->c_sortArray($array); print_r($v); $v = $bevin->v_sortArray($array); print_r($v); $v = $bevin->i_sortArray($array); print_r($v);

运行结果:

4 [1] => 4 [2] => 4 [3] => 5 [4] => 5 [5] => 5 [6] => 5 [7] => 5 [8] => 5 [9] => 5 ) Array ( [0] => 4 [1] => 4 [2] => 4 [3] => 5 [4] => 5 [5] => 5 [6] => 5 [7] => 5 [8] => 5 [9] => 5 ) Array ( [0] => 4 [1] => 4 [2] => 4 [3] => 5 [4] => 5 [5] => 5 [6] => 5 [7] => 5 [8] => 5 [9] => 5 ) Array ( [0] => 4 [1] => 4 [2] => 4 [3] => 5 [4] => 5 [5] => 5 [6] => 5 [7] => 5 [8] => 5 [9] => 5 )

更多关于php相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》及《

希望本文所述对大家php程序设计有所帮助。

大佬总结

以上是大佬教程为你收集整理的PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】全部内容,希望文章能够帮你解决PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。