1、冒泡排序
原理:比较相邻的元素。如果第一个比第二个大,就交换他们两个。 第一次排出最大的数,第二次排出第二大的,$arr=[5,3,5,7,1,9];
function bubblesearch($arr){
$len = count($arr);
for($i=1;$i<$len;$i++){
for($j=0;$j
2、自带的排序函数
sort() 函数用于对数组单元从低到高进行排序。
rsort() 函数用于对数组单元从高到低进行排序。
asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
ksort() 函数用于对数组单元按照键名从低到高进行排序。
krsort() 函数用于对数组单元按照键名从高到低进行排序
usort(array,function($a,$b){
if($a>$b){
return 1;
}else{
return -1;
}
})
array_multisort() 这个函数可以对多个PHP数组进行排序,排序结果是所有的数组都按第一个数组的顺序进行排列
3、array_multisort() 实际用法,实现多维数据按照多个字段排序
例子:按照年龄从大到小的顺序排列,如果年龄相同就按照名字的顺序排序
$array[] = array("age"=>20,"name"=>"li");
$array[] = array("age"=>21,"name"=>"ai");
$array[] = array("age"=>20,"name"=>"ci");
$array[] = array("age"=>22,"name"=>"di");
foreach ($array as $key=>$value){
$age[$key] = $value['age'];
$name[$key] = $value['name'];
}
array_multisort($age,SORT_NUMERIC,SORT_DESC,$name,SORT_STRING,SORT_ASC,$array);
print_r($array);
扩展学习
二分查找算法
/*
php 二分查找
在$a数组里查找$x的位置
$a必须是一个以升序排序后的数组
*/
function binsearch($find,$arr){
$count = count($arr);
$start = 0;
$end = $count-1;
while($start<=$end){
$middle = intval(($start+$end)/2);
if($arr[$middle]>$find){
$end = $middle-1;
}elseif($arr[$middle]<$find){
$start = $middle+1;
}else{
return $middle;
}
}
return -1;
}
如需转载请保留本文出处: https://zhe94.com/776.html