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 相关文章推荐
在服务端进行目录建立、删除,文件上传、删除的过程的php代码
Sep 10 PHP
提高PHP编程效率 引入缓存机制提升性能
Feb 15 PHP
DEDE采集大师官方留后门的删除办法
Jan 08 PHP
PHP提示Notice: Undefined variable的解决办法
Nov 24 PHP
php获取$_POST同名参数数组的实现介绍
Jun 30 PHP
百度实时推送api接口应用示例
Oct 21 PHP
php数组去除空值函数分享
Feb 02 PHP
php去掉文件前几行的方法
Jul 29 PHP
PHP实现无限分类的实现方法
Nov 14 PHP
thinkphp自定义权限管理之名称判断方法
Apr 01 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
May 02 PHP
tp5框架的增删改查操作示例
Oct 31 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
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
PHP基于imap获取邮件实例
2014/11/11 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
2015/01/07 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
window.showModalDialog使用手册
2007/01/11 Javascript
控制打印时页眉角的代码
2007/02/08 Javascript
javascript中length属性的探索
2011/07/31 Javascript
利用Keydown事件阻止用户输入实现代码
2014/03/11 Javascript
Js操作树节点自动折叠展开的几种方法
2014/05/05 Javascript
jQuery手动点击实现图片轮播特效
2020/04/20 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
vue组件中iview的modal组件爬坑问题之modal的显示与否应该是使用v-show
2019/04/12 Javascript
vue+webpack 更换主题N种方案优劣分析
2019/10/28 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
Python+Django在windows下的开发环境配置图解
2009/11/11 Python
Python使用django获取用户IP地址的方法
2015/05/11 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
2017/04/14 Python
python队列queue模块详解
2018/04/27 Python
Python 打印中文字符的三种方法
2018/08/14 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
机电专业大学生职业规划书范文
2014/02/25 职场文书
汇源肾宝广告词
2014/03/20 职场文书
出国留学经济担保书
2014/04/01 职场文书
2014年保险业务员工作总结
2014/12/23 职场文书
教师求职简历自我评价
2015/03/10 职场文书
企业爱心捐款倡议书
2015/04/27 职场文书
《秋天的雨》教学反思
2016/02/19 职场文书
如何书写你的职业生涯规划书?
2019/06/27 职场文书
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL