冒泡排序
<?php
$arrayTemp = array(2,3,7,9,1,4,6,10,5,8);
//第一层循环 控制轮数
for ($i=0; $i<count($arrayTemp)-1; $i++ ) {
// 第二层循环 拿一层循环给出的数字和它后面的数字做比较
// 若本数字大于后面一个数字则两者交换位置继续一次往下面比较
// 若本数字小于后面一个数字则不交换位置,后面的数字依次进行相同操作
// 内层循环是一个冒泡的过程,一次内层循环结束将会有一个较大数产生,第一次最大
for ($j=0; $j <count($arrayTemp)-1-$i ; $j++) {
$temp = '';
if( $arrayTemp[$j]>$arrayTemp[$j+1] ){
$temp = $arrayTemp[$j+1];
$arrayTemp[$j+1] = $arrayTemp[$j];
$arrayTemp[$j] = $temp;
}
}
}
var_dump($arrayTemp);
快速排序
<?php
$arrayTemp = array(2,3,7,9,1,4,6,10,5,8);
function quickSort ($sortArray){
$length = count($sortArray);
if($length <= 1) {
return $sortArray;
}
$midNum = $sortArray[0];
$leftNums = array();
$rightNums = array();
for ($i=1; $i < count($sortArray); $i++) {
if( $sortArray[$i]>$midNum ){
$rightNums[] = $sortArray[$i];
}else{
$leftNums[] = $sortArray[$i];
}
}
$leftNums = quickSort($leftNums);
$rightNums = quickSort($rightNums);
return array_merge($leftNums,array($midNum),$rightNums);
}
var_dump(quickSort($arrayTemp));