当前位置:  编程技术>php

php实现快速排序的三种方法分享

    来源: 互联网  发布时间:2014-08-26

    本文导语:  写了三种php快速排示例,第一种效率低但最简单最容易理解,第二个是算法导论上提供的单向一次遍历找中值方法,第三种是双向遍历找中值经典快排算法。三组算法实现和比较如下:方法一:该方法比较直观,但损失了大量...

写了三种php快速排示例,第一种效率低但最简单最容易理解,第二个是算法导论上提供的单向一次遍历找中值方法,第三种是双向遍历找中值经典快排算法。三组算法实现和比较如下:

方法一:该方法比较直观,但损失了大量的空间为代价,使用了效率较低的merge函数。在三种方法中效率最低。最坏情况下算法退化为(O(n*n))

代码如下:

function quick_sort($array) {
 if(count($array) = $key) {
  $rightArray[] = $array[$i];
    } else {
  $leftArray[] = $array[$i];
    }
 }
 $leftArray = quick_sort($leftArray);
 $rightArray = quick_sort($rightArray);
 return array_merge($leftArray, array($key), $rightArray);
}


方法二:该算法来自算法导论,叫作Nico Lomuto方法(感兴趣goole上有详细说明)使用最经典的单方向一次遍历找到中值。
但这种算法在最坏情况下(例如值相同的数组,需要n-1次划分,每一次划分需要O(n) 时间去掉一个元素)最坏情况下为O(n*n)

代码如下:

function quick_sort(&$array, $start, $end) {
    if ($start >= $end) return;
    $mid = $start;
    for ($i = $start + 1; $i $key 改成 $array[$right] >=$key 或将 $array[$left] < $key改成$array[$left]

    
 
 

您可能感兴趣的文章:

  • PHP快速排序小例子 php快速排序实现方法
  • php排序算法 PHP版快速排序与冒泡排序
  • php数组随机排序示例
  • php数组排序方法大全(脚本学堂整理奉献)
  • PHP二维数组排序的函数
  • 排序算法之PHP版快速排序、冒泡排序
  • php冒泡排序算法实现代码
  • php选择排序算法实现代码
  • 一个PHP二维数组排序的函数分享
  • php根据键值对二维数组排序的小例子
  • 又一个PHP实现的冒泡排序算法分享
  • php二维数组按指定键值key排序的例子
  • php实例分享之二维数组排序
  • PHP数组分组排序实例代码
  • 不使用php api函数实现数组的交换排序示例
  • php中多维数组按指定value排序的实现代码
  • php中文数组排序方法示例
  • php对二维数组进行排序的简单实例
  • PHP排序函数有哪些?
  • php iis7站长之家
  • php实现socket实现客户端和服务端数据通信源代码
  • PHP实现的AMQP php-amqplib
  • PHP实现Unicode和Utf-8互相转换
  • php解压文件代码实现php在线解压
  • php通过pack和unpack函数实现对二进制数据封装及解析
  • php通过数组实现多条件查询实现方法(字符串分割)
  • php微博短网址算法 php生成短网址的实现代码
  • php过滤html中网站链接 php实现域名白名单功能
  • php实现文件强制下载代码
  • php 九九乘法口诀表实现代码
  • PHP实现获取图片颜色值的方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php5中当浏览器禁用cookie时保持会话session的方法
  • 判断php数组维度(php数组长度)的方法
  • PHP编程语言介绍及安装测试方法
  • 图解找出PHP配置文件php.ini的路径的方法
  • php类声明和php类使用方法示例分享
  • windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
  • 查找php配置文件php.ini所在路径的二种方法
  • php定义数组和使用示例(php数组的定义方法)
  • PHP质数计算三种方法 php求100以内的质数
  • PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
  • php反射机制获取php类的所有方法
  • iis加载不到php.ini的解决方法
  • php跨域cookie共享使用方法
  • 两种设置php载入页面时编码的方法
  • PHP exif扩展方法开启详解
  • php出现Class 'XsltProcessor' not found问题的解决方法
  • windows下开启PHP GD库的方法
  • php判断闰年的三种方法(闰年计算方法)
  • php向js函数传参的几种方法
  • php检测iis环境是否支持htaccess的方法
  • php 自动生成订单编号二种方法
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • IIS7配置PHP图解(IIS7+PHP_5.2.17/PHP_5.3.5)
  • PHP 5.4.19 和 PHP 5.5.3 发布及下载地址
  • php输入流php://input使用示例(php发送图片流到服务器)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • PHP转换器 HipHop for PHP
  • PHP去除html标签,php标记及css样式代码参考
  • PHP 框架 Pop php
  • PHP 'ext/soap/php_xml.c'不完整修复存在多个任意文件泄露漏洞
  • PHP的JavaScript框架 PHP.JS




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3