zoukankan      html  css  js  c++  java
  • 快速排序

    快速排序

    • 快速排序算法是对冒泡算法的一个优化。他的思想是先对数组进行分割, 把大的元素数值放到一个临时数组里,把小的元素数值放到另一个临时数组里(这个分割的点可以是数组中的任意一个元素值,一般用第一个元素,即$array[0]),然后继续把这两个临时数组重复上面拆分,最后把小的数组元素和大的数组元素合并起来。这里用到了递归的思想。
    function quickSort($array){
        if(!isset($array[1]))
            return $array;
        $mid = $array[0]; //获取一个用于分割的关键字,一般是首个元素
        $leftArray = array(); 
        $rightArray = array();
    
        foreach($array as $v)
        {
            if($v > $mid)
                $rightArray[] = $v;  //把比$mid大的数放到一个数组里
            if($v < $mid)
                $leftArray[] = $v;   //把比$mid小的数放到另一个数组里
        }
    
        $leftArray = quickSort($leftArray); //把比较小的数组再一次进行分割
        $leftArray[] = $mid;        //把分割的元素加到小的数组后面,不能忘了它哦
    
        $rightArray = quickSort($rightArray);  //把比较大的数组再一次进行分割
        return array_merge($leftArray,$rightArray);  //组合两个结果
    }
    
  • 相关阅读:
    vision transformer
    亮剑,gacutil.exe
    MOSS自定义登陆页面
    查看应用程序的进程ID
    基于AD的表单认证 Moss2010
    js 实现拖动
    获取指定数据库表, 以及指定表的数据信息
    二分法
    JZ053表示数值的字符串
    JZ054字符流中第一个不重复的字符
  • 原文地址:https://www.cnblogs.com/mxyindex/p/11050950.html
Copyright © 2011-2022 走看看