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


Posted in PHP onOctober 09, 2012

冒泡排序实现原理

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

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

代码实现

<?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 相关文章推荐
多文件上传的例子
Oct 09 PHP
global.php
Dec 09 PHP
在PHP中使用redis
Nov 04 PHP
php生成RSS订阅的方法
Feb 13 PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
Mar 02 PHP
详解PHP中array_rand函数的使用方法
Sep 11 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
Sep 27 PHP
PHP实现对图片的反色处理功能【测试可用】
Feb 01 PHP
PHP面向对象程序设计继承用法简单示例
Dec 28 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
Nov 09 PHP
在 Laravel 6 中缓存数据库查询结果的方法
Dec 11 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 PHP
php全排列递归算法代码
Oct 09 #PHP
php列出一个目录下的所有文件的代码
Oct 09 #PHP
解析百度搜索结果link?url=参数分析 (全)
Oct 09 #PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
Oct 08 #PHP
php随机输出名人名言的代码
Oct 07 #PHP
PHP面向对象学习笔记之二 生成对象的设计模式
Oct 06 #PHP
PHP面向对象学习笔记之一 基础概念
Oct 06 #PHP
You might like
1 Tube Radio
2021/03/02 无线电
jQuery 源码分析笔记
2011/05/25 PHP
for循环连续求和、九九乘法表代码
2012/02/20 PHP
探讨:如何通过stats命令分析Memcached的内部状态
2013/06/14 PHP
php轻松实现文件上传功能
2016/03/03 PHP
Symfony2学习笔记之控制器用法详解
2016/03/17 PHP
浅谈PHP中的数据传输CURL
2016/09/06 PHP
javascript 面向对象编程  function是方法(函数)
2009/09/17 Javascript
JavaScript获取XML数据附示例截图
2014/03/05 Javascript
js控制当再次点击按钮时的间隔时间
2014/06/03 Javascript
node.js中的fs.createWriteStream方法使用说明
2014/12/17 Javascript
如何编写高质量JS代码(续)
2015/02/25 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
2015/07/29 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
2016/05/16 Javascript
Wireshark基本介绍和学习TCP三次握手
2016/08/15 Javascript
Vue实现双向绑定的原理以及响应式数据的方法
2018/07/02 Javascript
Python3.6正式版新特性预览
2016/12/15 Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
2017/11/15 Python
Python3生成手写体数字方法
2018/01/30 Python
django使用LDAP验证的方法示例
2018/12/10 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
2019/05/23 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
什么是TCP/IP
2014/07/27 面试题
应届生程序员求职信
2013/11/05 职场文书
大学生毕业的自我鉴定
2013/11/13 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
2014年党支部工作总结
2014/11/13 职场文书
2014年幼儿园班级工作总结
2014/12/17 职场文书
2014年体检中心工作总结
2014/12/23 职场文书
李白故里导游词
2015/02/12 职场文书
工作自我评价范文
2015/03/05 职场文书
2015年度物业公司工作总结
2015/04/27 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书
2016年度优秀辅导员事迹材料
2016/02/26 职场文书
倡议书怎么写?
2019/04/11 职场文书