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 相关文章推荐
解决phpmyadmin中文乱码问题。。。
Jan 18 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
Jun 28 PHP
php求两个目录的相对路径示例(php获取相对路径)
Mar 27 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
Nov 04 PHP
php实现给一张图片加上水印效果
Jan 02 PHP
Apache无法自动跳转却显示目录的解决方法
Nov 30 PHP
PHP合并数组函数array_merge用法分析
Feb 17 PHP
PHP 序列化和反序列化函数实例详解
Jul 18 PHP
PHP jQuery+Ajax结合写批量删除功能
May 19 PHP
PHP SFTP实现上传下载功能
Jul 26 PHP
PHP实现的敏感词过滤方法示例
Mar 06 PHP
PHP反射实际应用示例
Apr 03 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
使用MaxMind 根据IP地址对访问者定位
2006/10/09 PHP
php木马攻击防御之道
2008/03/24 PHP
JavaScript 常见对象类创建代码与优缺点分析
2009/12/07 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
深入探究JavaScript中for循环的效率问题及相关优化
2016/03/13 Javascript
快速掌握Node.js之Window下配置NodeJs环境
2016/03/21 NodeJs
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
JS中常用的消息框总结
2018/02/24 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
jquery多级树形下拉菜单的实例代码
2019/07/09 jQuery
详解Vue之事件处理
2020/07/10 Javascript
vue项目,代码提交至码云,iconfont的用法说明
2020/07/30 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
Vue实现图书管理案例
2021/01/20 Vue.js
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
Python 正则表达式实现计算器功能
2017/04/29 Python
基于python爬虫数据处理(详解)
2017/06/10 Python
python flask中动态URL规则详解
2019/11/22 Python
Python插件机制实现详解
2020/05/04 Python
详解Scrapy Redis入门实战
2020/11/18 Python
css3新单位vw、vh的使用教程
2018/03/23 HTML / CSS
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
群胜软件Java笔试题
2012/09/29 面试题
企业年会主持词
2014/03/27 职场文书
文体活动总结范文
2014/05/05 职场文书
文明和谐家庭事迹材料
2014/05/18 职场文书
相亲大会策划方案
2014/06/05 职场文书
2014党员批评和自我批评思想汇报
2014/09/21 职场文书
涨工资申请书应该怎么写?
2019/07/08 职场文书
java代码实现空间切割
2022/01/18 Java/Android
vue css 相对路径导入问题级踩坑记录
2022/06/05 Vue.js