PHP冒泡排序与快速排序
1、冒泡排序
function sort($arr)
{
// 第一层可以理解为从数组中键为0开始循环到最后一个
for ($i = 0; $i < count($arr); $i++) {
for ($j = $i + 1; $j < count($arr); $j++) {// 第二层为从$i+1的地方循环到数组最后
if ($arr[$i] > $arr[$j]) {// 比较数组中两个相邻值的大小
$tem = $arr[$i]; // 这里临时变量,存贮$i的值
$arr[$i] = $arr[$j]; // 第一次更换位置
$arr[$j] = $tem; // 完成位置互换
}
}
}
}
2、快排
function quick_sort($array)
{
if (count($array) <= 1) return $array;
$key = $array[0];
$left_arr = array();
$right_arr = array();
for ($i = 1; $i < count($array); $i++) {
if ($array[$i] <= $key)
$left_arr[] = $array[$i];
else
$right_arr[] = $array[$i];
}
$left_arr = $this->quick_sort($left_arr);
$right_arr = $this->quick_sort($right_arr);
return array_merge($left_arr, array($key), $right_arr);
}

浙公网安备 33010602011771号