美文网首页
快速排序,php实现

快速排序,php实现

作者: designer | 来源:发表于2020-05-06 13:50 被阅读0次

思路:1.选择第一个元素作为分区的基准元素,比较其他元素和该基准函数的大小,小的放在左边数组,大的放在右边数组

  •  2.分别对上述左右数组重复步骤1
    
  •  3.直到数组的元素为一个或者空
    
  •  4.合并左分区,分区基准元素,右分区
    
<?php
/**
 * Created by PhpStorm.
 * User: jiaoyang
 * Date: 2019/8/6
 * Time: 下午9:46
 */

namespace app\index\controller;


use think\Controller;
use think\Exception;

/**
 * 思路:1.选择第一个元素作为分区的基准元素,比较其他元素和该基准函数的大小,小的放在左边数组,大的放在右边数组
 *      2.分别对上述左右数组重复步骤1
 *      3.直到数组的元素为一个或者空
 *      4.合并左分区,分区基准元素,右分区
 * Class QuickSort
 * @package app\index\controller
 */
class QuickSort extends  Controller
{


    public  function  sort(){
        $arr = [100,78,34,56,21,33,90,31,67,54];
        $resultArray = $this->quickSort($arr);
        print_r($resultArray);
    }

    public function quickSort($originArr){
        if(count($originArr)<=1){
            return $originArr;
        }
        if(!is_array($originArr)){
            throw new Exception('不是合法的数组');
        }
        $middle = $originArr[0];
        $left = array();
        $right = array();
        //切分左右数组
        foreach ($originArr as $value){
            if($value<$middle){
                $left[] = $value;
            }
            if($value>$middle){
                $right[] = $value;
            }
        }

        $left = $this->quickSort($left);
        $right = $this->quickSort($right);
        return array_merge($left,array($middle),$right);
    }

}

`

相关文章

  • 排序算法

    冒泡排序 PHP OC 快速排序

  • PHP 实现快速排序

    导语 这篇了解下快速排序。 快速排序 快速排序(英语:Quicksort),又称划分交换排序(partition-...

  • PHP实现快速排序

    快速排序属于交换排序,是一种不稳定排序,平均时间复杂度为O(nlog2^n),最好情况时间复杂度为O(nlog2^...

  • PHP实现:快速排序

  • 快速排序,php实现

    思路:1.选择第一个元素作为分区的基准元素,比较其他元素和该基准函数的大小,小的放在左边数组,大的放在右边数组 2...

  • PHP实现快速排序

    通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录...

  • php实现快速排序算法

    理解 每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的...

  • 快速排序【一】,php实现

  • 快速排序算法的PHP与JQuery简单实现

    快速排序(以下简称快排)算法的PHP与JQuery简单实现 1.简介: 1.快排的本质是冒泡排序(Bubble S...

  • go实现快速排序

    第一,单线程实现快速排序 第二,多线程实现快速排序

网友评论

      本文标题:快速排序,php实现

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