zoukankan      html  css  js  c++  java
  • PHP实现的快速排序

    <?php
    function quickSort(&$array, $left, $right){
        if ($left >= $right){
            return ;
        }
        $pivot = $array[$left]; //选择比较元素
        $array[$left] = $array[$right];
        $array[$right] = $pivot; //比较元素移至数组末尾
        $storeIdx = $left;
        for ($i = $left; $i < $right; $i++){ //找到比较元素合适的位置
            if ($array[$i] < $pivot){//小于比较元素的元素移至数组左边,大于比较元素的元素移至数组右边
                $tmp = $array[$storeIdx];
                $array[$storeIdx] = $array[$i];
                $array[$i] = $tmp;
                $storeIdx++;
            }
        }
        $tmp = $array[$storeIdx];
        $array[$storeIdx] = $pivot; //比较元素插入合适位置
        $array[$right] = $tmp; 
        quickSort($array, $left, $storeIdx-1); //比较左边部分
        quickSort($array, $storeIdx+1, $right); //比较右边部分
    }
    $arr = array(1,4,2,1,78,100,3,2,900,1,10);
    quickSort($arr,0,count($arr)-1);
    var_dump($arr);
    ?>

    Wiki:http://en.wikipedia.org/wiki/Quicksort

  • 相关阅读:
    C#之设计模式
    C#之索引器
    C#基础强化-继承与多态
    C#基础强化-进程操作
    WKWebView与JavaScript交互基础
    HTML之JS学习
    HTML之CSS学习
    HTML学习
    玩诈欺的小杉
    最大异或和
  • 原文地址:https://www.cnblogs.com/wadeyu/p/2789724.html
Copyright © 2011-2022 走看看