主页
软件技术
返回
PHP实现排序算法

        <?php

        // 功能: PHP实现各种排序算法

        // 冒泡排序

        function BubbleSort($arr){

        $num = count($arr);

        for($i=1;$i<$num;$i++){

        for($j=$num-1;$j>=$i;$j--){

        if($arr[$j]<$arr[$j-1]){

        $iTemp = $arr[$j-1];

        $arr[$j-1] = $arr[$j];

        $arr[$j] = $iTemp;

        }

        }

        }

        return $arr;

        }

        // 交换法排序

        function ExchangeSort($arr){

        $num = count($arr);

        for($i=0;$i<$num-1;$i++){

        for($j=$i+1;$j<$num;$j++){

        if($arr[$j]<$arr[$i]){

        $iTemp = $arr[$i];

        $arr[$i] = $arr[$j];

        $arr[$j] = $iTemp;

        }

        }

        }

        return $arr;

        }

        // 选择法排序

        function SelectSort($arr){

        $num = count($arr);

        for($i=0;$i<$num-1;$i++){

        $iTemp = $arr[$i];

        $iPos = $i;

        for($j=$i+1;$j<$num;$j++){

        if($arr[$j]<$iTemp){

        $iTemp = $arr[$j];

        $iPos = $j;

        }

        }

        $arr[$iPos] = $arr[$i];

        $arr[$i] = $iTemp;

        }

        return $arr;

        }

        // 插入法排序

        function InsertSort($arr){

        $num = count($arr);

        for($i=1;$i<$num;$i++){

        $iTemp = $arr[$i];

        $iPos = $i-1;

        while(($iPos>=0) && ($iTemp<$arr[$iPos])){

        $arr[$iPos+1] = $arr[$iPos];

        $iPos--;

        }

        $arr[$iPos+1] = $iTemp;

        }

        return $arr;

        }

        // 快速排序

        function QuickSort($arr){

        $num = count($arr);

        $l=$r=0;

        for($i=1;$i<$num;$i++){

        if($arr[$i] < $arr[0]){

        $left[] = $arr[$i];

        $l++;

        }else{

        $right[] = $arr[$i];

        $r++;

        }

        }

        if($l > 1){

        $left = QuickSort($left);

        }

        $new_arr = $left;

        $new_arr[] = $arr[0];

        if($r > 1){

        $right = QuickSort($right);

        }

        for($i=0;$i<$r;$i++){

        $new_arr[] = $right[$i];

        }

        return $new_arr;

        }

        $arr = array(7,1,6,5,2); $arr_new = QuickSort($arr); echo "<pre>";

        print_r($arr_new);

        echo "</pre>";

        ?>

        


湖北公布2015年造价工程师考务文件
工程监理合同范本
设计图变更致工程质量出问题 千万项目无法验收
“全国工程质量治理两年行动”实施三个月综述
网上创业节省成本赚大钱
结构专业施工图审查中常见的若干问题
2010年特种陶瓷制品制造行业企业排行榜
15河北省造价工程师报考条件
信息发布:名易软件http://www.myidp.net