1、冒泡排序
$al = [2, 1, 6, 8, 12, 23, 0, 1, 2];
function mp($al)
{
$len = count($al);
for ($i = 1; $i < $len; $i++) {
for ($j = 0; $j < $len - $i; $j++) {
if ($al[$j] > $al[$j + 1]) {
$temp = $al[$j + 1];
$al[$j + 1] = $al[$j];
$al[$j] = $temp;
}
}
}
return $al;
}
print_r(mp($al));
2、选择排序
$ab = [2, 1, 6, 8, 12, 23, 0, 1, 2];
function xp($ab)
{
$len = count($ab);
for ($i = 0; $i < $len; $i++) {
$m = $i;
for ($j = $i; $j < $len; $j++) {
if ($ab[$j] < $ab[$m]) {
$m = $j;
}
}
$temp = $ab[$m];
$ab[$m] = $ab[$i];
$ab[$i] = $temp;
}
return $ab;
}
print_r(xp($ab));
3、快速排序
$q = [2, 1, 6, 8, 12, 23, 0, 1, 2];
function kp($q)
{
$len = count($q);
if ($len <= 1) {
return $q;
}
$base_num = $q[0];
$left = [];
$right = [];
for ($i = 1; $i < $len; $i++) {
if ($q[$i] < $base_num) {
$left[] = $q[$i];
} else {
$right[] = $q[$i];
}
}
$left = kp($left);
$right = kp($right);
return array_merge($left, (array) $base_num, $right);
}
print_r(kp($q));