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

    算法思想:采用分治法,首先确定一个元素作为参照,将所有比其小的元素都放到其左边,将所有比其大的元素都放到其右边,一趟快速排序,确定参照元素的最终位置,然后对最终位置两边的分别再采用如上做法,不断递归,最后排序完成。

    代码:

    <?php
        $arr = array(232,3,44,234,456,3432,289,12,43546,54,322,554,45,3435,34454,323,2323);
        function quickSort(&$arr, $low, $high)
        {
            if($low<$high)
            {
                $index = partion($arr, $low, $high);
                quickSort($arr, $low, $index-1);
                quickSort($arr, $index+1, $high);
            }
        }
        function partion(&$arr, $low, $high)
        {
            while($low<$high)
            {
                $temp = $arr[$low];
                while($low<$high && $arr[$high]>$temp) 
                    $high--; 
                $arr[$low] = $arr[$high];
                while($low<$high && $arr[$low]<$temp) 
                    $low++;
                $arr[$high] = $arr[$low];
    
                $arr[$low] = $temp;
            }
    
            return $low;
        }
        quickSort($arr, 0, count($arr)-1);
        foreach ($arr as $val) {
            echo " ".$val;
        }
    ?>
  • 相关阅读:
    Form表单提交数据的几种方式
    前端基础-HTML
    python入门函数详解
    Python作业编写
    Python入门数据类型详解
    Jquery选择器
    做外链接和有外链接区别
    三层架构
    drop,delete,truncate区别
    run()和star()区别
  • 原文地址:https://www.cnblogs.com/fantasy01/p/4153707.html
Copyright © 2011-2022 走看看