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

    //快速排序,从数组重找到一个基准,然后把所有的数和这个基准比较,分为大于这个基准的数组,和小于这个数的基准数组。然后再递归执行就行
    
    $arr = [2,376,3,1,65,123,758,1234,7856,123];
    //快速排序
    //选取一个标准,和其他数据对比后将数据分为两批,递归执行后合并
    function quickSort(&$arr, $sort = 'asc'){
    
        //检查数据,多于一个数据才执行
        $nCount = count($arr);
        if($nCount > 1) {
            //选取标准(第一个数据)
            $nStandard = $arr[0];
            $arrLeftData = [];
            $arrRightData = [];
            //遍历,注意这里从1开始比较
            for($i = 1; $i < $nCount; $i++) {
    
                if($sort == 'desc') {
                    $arr[$i] > $nStandard ? $arrLeftData[] = $arr[$i] : $arrRightData[] = $arr[$i];
                } else {
                    $arr[$i] > $nStandard ? $arrRightData[] = $arr[$i] : $arrLeftData[] = $arr[$i];
                }
            }
            $arr = array_merge(quickSort($arrLeftData, $sort), array($nStandard), quickSort($arrRightData, $sort));
        }
        return $arr;
    }
    $arr = quickSort($arr,'asc');
    print_r($arr);exit;
    

      

  • 相关阅读:
    rails 相关文件
    linux学习---vi进行多行的copy,cut
    设计
    互联网---现在正在变成过去
    testing
    TTl
    如何成为优秀的性能测试工程师
    linuX学习
    Programiz 中文系列教程·翻译完成
    Programiz C 语言教程·翻译完成
  • 原文地址:https://www.cnblogs.com/xin-jun/p/9909585.html
Copyright © 2011-2022 走看看