<pre name="code" class="php"><pre name="code" class="php">//冒泡排序
function mysort($arr){
$n=count($arr);
for ($i=0; $i <$n-1; $i++) {
for ($j=0; $j <$n-$i-1 ; $j++) {
if($arr[$j]>$arr[$j+1]){
$t=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$t;
}
}
}
return $arr;
}
echo "冒泡排序";
$arr=array(2,1,3,6,5,4,8,7,9,15,12,16);
show_bug(mysort($arr));
//选择排序
function mysort_arr($arr2){
$num=count($arr2);
for ($a=0; $a <$num ; $a++) {
for ($b=$a; $b<$num; $b++) {
if($arr2[$a]>$arr2[$b]){
$t=$arr2[$a];
$arr2[$a]=$arr2[$b];
$arr2[$b]=$t;
}
}
}
return $arr2;
}
echo "选择排序";
$arr2=array(23,5,26,4,9,85,10,2,55,44,21,39,11,16,55,88,421,226);
show_bug(mysort_arr($arr2));
<span style="font-size:18px;"><strong><span style="color:#ff0000;">//快速排序
</span>function quick_sort($arr) {
//先判断是否需要继续进行
$length = count($arr);
if($length <= 1) {
return $arr;
}
//选择一个标尺,选择第一个元素
$base_num = $arr[0];
//遍历 除了标尺外的所有元素,按照大小关系放入两个数组内
//初始化两个数组
$left_array = array();//小于标尺的
$right_array = array();//大于标尺的
$length = count($arr);
for($i=1; $i<$length; $i++) {
if($base_num > $arr[$i]) {
//放入左边数组
$left_array[] = $arr[$i];
} else {
//放入右边
$right_array[] = $arr[$i];
}
}
//再分别对 左边 和 右边的数组进行相同的排序处理方式
//递归调用这个函数,并记录结果
$left_array = quick_sort($left_array);
$right_array = quick_sort($right_array);
//合并左边 标尺 右边
return array_merge($left_array, array($base_num), $right_array);
}
$arr=array(10,5,6,8,9,2,3,7);
$hehe=quick_sort($arr);
show_bug($hehe);
</strong></span>