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);

    }

  

posted @ 2019-10-16 11:05  北满  阅读(430)  评论(0编辑  收藏  举报