美文网首页
算法之快速排序(php版)

算法之快速排序(php版)

作者: 一梦三四年lyp | 来源:发表于2018-03-29 17:31 被阅读0次
        function kuaisu($arr) {
    
            if (empty($arr)) {
                #必须是返回空数组 不然报错
    
                return array();
            }
    
            //count long
            $len = count($arr);
    
            if ($len < 1) {
    
                return 'is error';
            }
    
            //随机选取一个数作为参照
    
            $key[0] = $arr[0];
    
            //建2个数组给来保存左右两边得数据
    
            $left = array();
            $right = array();
    
            //循环数组比较
            for ($i = 1; $i < $len; $i++) { 
                # 和选中的值做比较小的放左边,大的放右边,利用二分法原理
                if ($arr[$i] <= $key[0]) {
    
                    $left[] = $arr[$i];
                } else {
                    
                    $right[] = $arr[$i];
                }
            }
    
    
            //把左边的数据放一起,右边的放一起
            $left = kuaisu($left);
            $right = kuaisu($right);
    
            //最后合并数组放回
            return array_merge($left, $key, $right);
        }
    
        $arrTest = array(5,2,3,1,4);
    
        print_r(kuaisu($arrTest));
    

    相关文章

      网友评论

          本文标题:算法之快速排序(php版)

          本文链接:https://www.haomeiwen.com/subject/haqvcftx.html