php排序算法(冒泡排序,快速排序)

 更新时间:2012年10月09日 19:47:26   转载 作者:  
php排序算法代码,包括冒泡排序与快速排序,需要的朋友可以参考下

冒泡排序实现原理

① 首先将所有待排序的数字放入工作列表中。
② 从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换。

③ 重复步骤②,直至再也不能交换。

代码实现

复制代码 代码如下:

<?php
 function bubbingSort(array $array)
 {
     for($i=0, $len=count($array)-1; $i<$len; ++$i)
     {
         for($j=$len; $j>$i; --$j)
         {
             if($array[$j] < $array[$j-1])
             {
                 $temp = $array[$j];
                 $array[$j] = $array[$j-1];
                 $array[$j-1] = $temp;
             }
         }
     }
     return $array;
 }

 print '<pre>';
 print_r(bubbingSort(array(1,4,22,5,7,6,9)));
 print '</pre>';

快速排序实现原理
采用分治的思想:先保证列表的前半部分都小于后半部分,然后分别对前半部分和后半部分排序,这样整个列表就有序了。

代码实现

复制代码 代码如下:

function quickSort(array $array)
 {
     $len = count($array);
     if($len <= 1)
     {
         return $array;
     }
     $key = $array[0];
     $left = array();
     $right = array();
     for($i=1; $i<$len; ++$i)
     {
         if($array[$i] < $key)
         {
             $left[] = $array[$i];
         }
         else
         {
             $right[] = $array[$i];
         }
     }
     $left = quickSort($left);
     $right = quickSort($right);
     return array_merge($left, array($key), $right);
 }

 print '<pre>';
 print_r(quickSort(array(1,4,22,5,7,6,9)));
 print '</pre>';

相关文章

  • 使用php实现快钱支付功能(涉及到接口)

    使用php实现快钱支付功能(涉及到接口)

    本篇文章是对使用php实现快钱支付功能的代码进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • 合格的PHP程序员必备技能

    合格的PHP程序员必备技能

    要想成为一个合格的PHP程序员需要掌握许多技能,这篇文章就向大家介绍了一个合格的PHP程序员必备技能,想要真正了解php程序的朋友一定仔细阅读,判断自己具备多少个技能。
    2015-11-11
  • PHP CURL函数库

    PHP CURL函数库

    PHP中的CURL函数库集合
    2008-10-10
  • php 时间计算问题小结

    php 时间计算问题小结

    最近在学PHP,一位朋友问到时间的计算,此时我想到了delphi和mssql的计算函数,它们用起来都很方便,但查查php手册并未发现类似的时间计算函数,通过网文的启发和自已的测试,还是找到简单的方法来实现
    2009-01-01
  • 用PHP程序实现支持页面后退的两种方法

    用PHP程序实现支持页面后退的两种方法

    在开发过程中,往往因为表单出错而返回页面的时候填写的信息都不见了,为了支持页面回跳,可以通过两种方法实现。
    2008-06-06
  • PHP判断是否为空的几个函数对比

    PHP判断是否为空的几个函数对比

    这篇文章主要介绍了PHP判断是否为空的几个函数对比,本文讲解了gettype()、empty()、is_null()、isset()等几个函数在不同变量下的返回值情况,需要的朋友可以参考下
    2015-04-04
  • PHP curl_setopt()函数实例代码与参数分析

    PHP curl_setopt()函数实例代码与参数分析

    curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。
    2011-06-06
  • php 获取百度的热词数据的代码

    php 获取百度的热词数据的代码

    php 获取百度的热词数据的代码,返回数组
    2012-02-02
  • PHP消息队列用法实例分析

    PHP消息队列用法实例分析

    这篇文章主要介绍了PHP消息队列用法,结合实例形式分析了PHP消息队列用于Linux下进程间通信的相关技巧,需要的朋友可以参考下
    2016-02-02
  • 详解PHP安装mysql.so扩展的方法

    详解PHP安装mysql.so扩展的方法

    平常我们都是先安装mysql,然后才能去安装php。假如先安装php,后安装mysql,由于php需要连接mysql,因而在php引擎中需要配置使用mysql.so扩展。下面这篇文章主要介绍了PHP安装mysql.so扩展的方法,需要的朋友可以参考下
    2016-12-12

最新评论