冒泡排序 :
//冒泡排序
public function index($arr){
//统计数组长度
$count = array($arr);
//确定需要循环多少次
for($i=0;$i<=$count;$i++){
//确定循环
for($x=$i+1;$i<$count;$i++){
//进行比大小
if($arr[$i]>$arr[$k]){
//定义一个临时变量 变量是从右到左赋值
$tem=$arr[$i];
$arr[$i]=$arr[$k];
$arr[$k]=$tem;
}
}
}
}
选择排序
public function index($arr){
$len=count($arr);
for($i=0;$i<$len;$i++){
//记录最小数组索引
$min=$arr[$i];
for($a=$i+1;$i<$len;$i++){
//判断是否是最小数组索引
if($arr[$i]>$arr[$a]){
//交换
$min=$arr[$a];
}
}
$temp = $arr[$i];
$arr[$i]=$arr[$a];
$arr[$a]=$temp
}
}
快速排序:
public function index($arr){
$count = count($arr);
//判断是否需要循环
if($count<=1){
return $arr;
}
//定义中间数
$m=$arr[0];
//定义左右两个数组
$left=$right=[];
//遍历。判断两个临近的两个值谁大,大的放右边,小的放左边
for($i=1;$i<$count;$i++){
if($a[$m]>$a[$i]){
$left[]=$a[$i];
}else{
$right[]=$a[$m];
}
}
//递归调用当前方法
$left=$this->index($left);
$left[]=$m;
$right=$this->index($right);
//合并数组
$arr = array_marge($left,$arr[$m],$right);
}
//