这篇文章主要介绍了PHP四种基本排序算法和两种查找算法示例,本文用一个实例讲解冒泡排序法、快速排序法、选择排序法、插入排序法的使用,需要的朋友可以参考下
本文汇总了常见的php排序算法和查找,,在进行算法设计的时候有不错的借鉴价值。现分享给大家供参考之用。具体如下:
$arr[$j+1]){
$temp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$temp;
$flag=true;
}
}
if(!$flag){
//已经是有序了
break;
}
$flag=false;
}
}
//PHP选择排序法 效率比冒泡要高
function selectSort(&$arr){
$temp=0;
for($i=0;$i$arr[$j]){
$minVal=$arr[$j];
$minIndex=$j;
}
}
//最后交换
$temp=$arr[$i];
$arr[$i]=$arr[$minIndex];
$arr[$minIndex]=$temp;
}
}
//插入排序法(小到大排序) 效率又比 选择排序法要高一些
function insertSort(&$arr){
//先默认下标为0的这个数已经是有序
for($i=1;$i= 0 && $insertVal $pivot){
$r--;
}
if($l>=$r){
break;
}
$temp=$arr[$l];
$arr[$l]=$arr[$r];
$arr[$r]=$temp;
if($arr[$l]==$pivot){
--$r;
}
if($arr[$r]==$pivot){
++$l;
}
}
if($l==$r){
$l++;
$r--;
}
if($left$l) quickSort($l,$right,$arr);
}
/**
* 快速排序方法 第二种实现方法 自己实现的
* PHP快速排序方法
* $order asc 小到大 desc大到小 默认是asc
* $order 的值只能为 asc desc 如果乱写一个值也是按asc排序的
*/
function quickSort2($arr,$order = 'asc')
{
if(count($arr) $val)
$arr_right[] = $v;
else
$arr_left[] = $v;
}
}
$arr_left = quickSort($arr_left,$order);
$arr_right = quickSort($arr_right,$order);
return array_merge($arr_left,array($val),$arr_right);
}
//下面是查找
$arr=array(46,90,900,0,-1);
//这是按顺序查询
function search(&$arr,$findVal){
$flag=false;
for($i=0;$i $arr[$middleIndex]){
binarySearch($arr,$findVal,$middleIndex+1,$rightIndex);
//如果小于中间数,则向前面找
}else if($findVal
希望本文所述排序算法和查找算法实例对大家的php程序设计有所帮助。