冒泡排序(有序数组)
实现思路:
1.需要判断数组的个数
2.循环数组将第一遍循环的数和第二遍循环的数进行比较,大的放到临时数组,大数和小数互换
$count = count($array) //获取数组个数
for($i= 0 ,$i<$count,$i++){
for($j = $i+1,$j<$count,$j++){
if($array[$i] > $array[$j]){ //如果需要从小到大就将>改为<
$temp = $array[$i];//将$i赋值一个空数组
$array[$i] = $array[$j];
$array[$j] = $temp;
}
}
}
2.快速排序
思路:需要通过中间值进行比较将大于中间值和小于中间值的数分别存放2个数组中然后依次进行递归排序知道全部完成,合并数组与中间值
public function paixu($array){
$key = $array[0];
$count = count($array);//获取数组个数
for($i=0,$i<$count,$i++){
if($array[$i] < $key){
$left[] = $array[$i];
}else{
$right[] = $array[$i];
}
}
//递归分类
$left = $paixu($left);
$right = $paixu($right);
array_merge($left,$key,$right)
}