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);  //组合两个结果
    }
    
  • 相关阅读:
    python+hadoop=?
    Fluentd: The Missing Log Collector
    hadoop streaming 记录
    valgrind备忘
    [hadoop源码阅读][9]mapreduce概论
    GNU Binutils工具
    vim encoding
    [hadoop源码阅读][8]datanodedatanode
    Webdis: HTTP + JSON API for Redis
    gdb 小备注
  • 原文地址:https://www.cnblogs.com/mxyindex/p/11050950.html
Copyright © 2011-2022 走看看