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

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

概述详解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中的几种常见排序方法(附代码)全部内容,希望文章能够帮你解决详解php中的几种常见排序方法(附代码)所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/997783.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存