主页
软件技术
返回
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建设工程项目管理:双代号网络计划
汽机房屋盖采用网架结构的问题和建议
住房保障半年盘点中央政策给力 地方不遗余力
混凝土外观质量控制与聚羧酸系减水剂的应用
工程项目管理(Engineering Project Management)
信息发布:名易软件http://www.myidp.net