PHP排序算法

排序算法有以下几种:

冒泡排序、直接插入排序、希尔排序、选择排序、堆排序,归并排序

以下数组为例子
$arr = array(23, 15, 43, 25, 54, 2, 6, 82, 11, 5, 21, 32, 65);

冒泡排序

function maopao($arr)
{

    $length = count($arr);
    for ($i = 0; $i < $length; $i++) {
        for ($j = $i + 1; $j < $length; $j++) {
            if ($arr[$i] > $arr[$j]) {
                $temp = $arr[$j];
                $arr[$j] = $arr[$i];
                $arr[$i] = $temp;
            }

        }
    }

    return $arr;
}

var_dump(maopao($arr));

快速排序

function kspx($demo_array)
{

    $length = count($demo_array);

    if ($length <= 1) {
        return $demo_array;
    }

    $base = $demo_array[0];

    $left = [];

    $right = [];

    for ($i = 1; $i < $length; $i++) {

        if ($base > $demo_array[$i]) {
            $left[] = $demo_array[$i];
        } else {
            $right[] = $demo_array[$i];
        }
    }

    $left = kspx($left);
    $right = kspx($right);

    return array_merge($left, [$base], $right);

}

var_dump(kspx($arr));