首页后端开发PHP详解php中的几种常见排序方法(附代码)

详解php中的几种常见排序方法(附代码)

时间2024-02-02 05:13:03发布访客分类PHP浏览747
导读:收集整理的这篇文章主要介绍了详解php中的几种常见排序方法(附代码),觉得挺不错的,现在分享给大家,也给大家做个参考。php中的几种常见排序方法PHP有多种排序方法,本篇文章给大家介绍几种常见的排序方法:冒泡排序、交换法排序、选择法排序、插...
收集整理的这篇文章主要介绍了详解php中的几种常见排序方法(附代码),觉得挺不错的,现在分享给大家,也给大家做个参考。

php中的几种常见排序方法

PHP有多种排序方法,本篇文章给大家介绍几种常见的排序方法:冒泡排序、交换法排序、选择法排序、插入法排序、快速排序。希望对大家有所帮助。

排序方法1:冒泡排序

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;
}
    

排序方法2:交换法排序

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;
}
    

排序方法3:选择法排序

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;
}
    

排序方法4:插入法排序

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;
}
    

排序方法5:快速排序

function Quicksort($arr){
        $num = count($arr);
        $l = $r = 0;
        $left = $right = array();
        // 从索引的第二个开始遍历数组    for ($i = 1;
    $i  $num;
 $i++) {
        // 如果值小于索引1        if ($arr[$i]  $arr[0]) {
                // 装入左索引数组(小于索引1的数据)            $left[] = $arr[$i];
                $l++;
        }
 else {
                // 否则装入右索引中(大于索引1的数据)            $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;
}
    

推荐教程:《PHP视频教程》

以上就是详解php中的几种常见排序方法(附代码)的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 详解php中的几种常见排序方法(附代码)
本文地址: https://pptw.com/jishu/596405.html
直击Thinkphp中的Swoole 详解PHP死循环写法和作用

游客 回复需填写必要信息