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,请注明来意。