PHP的几种常用排序算法

本文介绍了PHP中常见的四种排序算法:冒泡排序,通过不断比较并交换元素来排序;选择排序,每次找到剩余部分的最小元素与当前元素交换;插入排序,将元素插入到已排序部分的正确位置;快速排序,通过基准元素划分并递归排序。理解这些排序算法的原理对于优化代码性能至关重要。
摘要由CSDN通过智能技术生成

PHP的几种常用排序算法


所谓排序,就是对一组数据,按照某个顺序排列的过程。

  1. 冒泡排序(Bubble sort)

基本思想:如下图所示,将一组数据看作一排竖着的气泡,然后让最后一个数与倒数第二个数进行比较,大的就往前移。然后用相同的方法,将倒数第二个数与倒数第三个进行比较,大的往前移,依次类推,最后本轮循环结束后,第一个元素就是最大的了,然后继续循环,得到第二个,第三个……

下面给出实现代码,已经优化过的冒泡排序

function BubbleSort(&$arr){
       //必须是&$arr,传一个地址,如果是$arr,根据函数调用机制,排序将无法生效
    $temp=0;    //中间变量
    $flag=false;
    //外层循环控制循环次数
    for($i=0;$i<count($arr)-1;$i++){
   
      //内层循环控制每一次循环的交换
        for($j=0;$j<count($arr)-1-$i;$j++){
   
            //若前面的数比后面的数大,则交换
            if($arr[$j]>$arr[$j+1]){
   
                $temp=$arr[$j];
                $arr[$j]=$arr[$j+1];
                $arr[$j+1]=$temp;
                $flag=true;
            }
        }
        if
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值