冒泡排序
原始数组: $num = array(6,5,2,8,1,3,9);
外层循环总次数,也就是数组总长度减 1
内层循环每一次排序,循环依次减少 1 次
如果第二位数与第一位数相比较 小于第一位数,就走if判断,否则不走if判断
走if判断:
就把第二位数放在一个新变量里
再把第一位数赋给第二位数
第一位数就放在了新变量里
依次类推,直到排完为止;
Array ( [0] => 5 [1] => 6 [2] => 2 [3] => 8 [4] => 1 [5] => 3 [6] => 9 )
Array ( [0] => 5 [1] => 2 [2] => 6 [3] => 8 [4] => 1 [5] => 3 [6] => 9 )
Array ( [0] => 5 [1] => 2 [2] => 6 [3] => 8 [4] => 1 [5] => 3 [6] => 9 )
Array ( [0] => 5 [1] => 2 [2] => 6 [3] => 1 [4] => 8 [5] => 3 [6] => 9 )
Array ( [0] => 5 [1] => 2 [2] => 6 [3] => 1 [4] => 3 [5] => 8 [6] => 9 )
Array ( [0] => 5 [1] => 2 [2] => 6 [3] => 1 [4] => 3 [5] => 8 [6] => 9 )
Array ( [0] => 2 [1] => 5 [2] => 6 [3] => 1 [4] => 3 [5] => 8 [6] => 9 )
Array ( [0] => 2 [1] => 5 [2] => 6 [3] => 1 [4] => 3 [5] => 8 [6] => 9 )
Array ( [0] => 2 [1] => 5 [2] => 1 [3] => 6 [4] => 3 [5] => 8 [6] => 9 )
Array ( [0] => 2 [1] => 5 [2] => 1 [3] => 3 [4] => 6 [5] => 8 [6] => 9 )
Array ( [0] => 2 [1] => 5 [2] => 1 [3] => 3 [4] => 6 [5] => 8 [6] => 9 )
Array ( [0] => 2 [1] => 5 [2] => 1 [3] => 3 [4] => 6 [5] => 8 [6] => 9 )
Array ( [0] => 2 [1] => 1 [2] => 5 [3] => 3 [4] => 6 [5] => 8 [6] => 9 )
Array ( [0] => 2 [1] => 1 [2] => 3 [3] => 5 [4] => 6 [5] => 8 [6] => 9 )
Array ( [0] => 2 [1] => 1 [2] => 3 [3] => 5 [4] => 6 [5] => 8 [6] => 9 )
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 5 [4] => 6 [5] => 8 [6] => 9 )
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 5 [4] => 6 [5] => 8 [6] => 9 )
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 5 [4] => 6 [5] => 8 [6] => 9 )
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 5 [4] => 6 [5] => 8 [6] => 9 )
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 5 [4] => 6 [5] => 8 [6] => 9 )
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 5 [4] => 6 [5] => 8 [6] => 9 )
<?php
$aone = array(6,5,2,8,1,3,9);
for($i = 0;$i<count($aone)-1;$i++){
//冒泡排序
for($j= 0;$j<count($aone)-$i-1;$j++){
if($aone[$j+1]<$aone[$j]){
$c = $aone[$j+1];
$aone[$j+1]=$aone[$j];
$aone[$j]=$c;
}
echo "<pre>";
}
}
print_r($aone);
?>
快速排序
先判断是不是数组 ,如果不是数组就return false
再判断数组的长度是不是小于等于1 ,如果数组的长度小于等于1,那么就直接返回这个数组
数组的元素有多个,定义两个空数组
(目前还不知道定义数组的目的到底何在,请接着往下看!)
然后使用for循环进行遍历,把第一个数为基准 ,作为比较的对象
先判断当前元素的大小,如果比 为基准的元素小,那么就放在左边的数组里,否则就放在右边的数组
递归调用这两个数组
将所有的数组合并 array_merge()
<?php
function quick_sort($arr)
{
//判断参数是否是一个数组
if(!is_array($arr)) return false;
//递归出口:数组长度为1,直接返回数组
$length=count($arr);
if($length<=1) return $arr;
//数组元素有多个,则定义两个空数组
$left=$right=array();
//使用for循环进行遍历,把第一个元素当做比较的对象
for($i=1;$i<$length;$i++)
{
//判断当前元素的大小
if($arr[$i]<$arr[0]){
$left[]=$arr[$i];
}else{
$right[]=$arr[$i];
}
}
//递归调用
$left=quick_sort($left);
$right=quick_sort($right);
//将所有的结果合并
return array_merge($left,array($arr[0]),$right);
}
//调用
echo "<pre>";
//print_r(quick_sort($arr));
?>