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 04 PHP
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
Oct 31 PHP
PHP的简易冒泡法代码分享
Aug 28 PHP
编写Smarty插件在模板中直接加载数据的详细介绍
Jun 26 PHP
php MessagePack介绍
Oct 06 PHP
php使用curl抓取qq空间的访客信息示例
Feb 28 PHP
php防止伪造的数据从URL提交方法
Jun 27 PHP
php使用数组填充下拉列表框的方法
Mar 31 PHP
PHP使用socket发送HTTP请求的方法
Feb 14 PHP
php使用文本统计访问量的方法
May 12 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
Apr 27 PHP
PHP提取字符串中的手机号正则表达式怎么写
Jul 17 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
PHP使用Session遇到的一个Permission denied Notice解决办法
2014/07/30 PHP
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看
2015/12/31 PHP
php实现带读写分离功能的MySQL类完整实例
2016/07/28 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
Bookmarklet实现启动jQuery(模仿 云输入法)
2010/09/15 Javascript
getComputedStyle与currentStyle获取样式(style/class)
2013/03/19 Javascript
如何让页面加载完成后执行js
2013/06/26 Javascript
js实现收缩菜单效果实例代码
2013/10/30 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
bootstrap配合Masonry插件实现瀑布式布局
2017/01/18 Javascript
使用jQuery实现简单的tab框实例
2017/08/22 jQuery
Node.js搭建小程序后台服务
2018/01/03 Javascript
浅谈React前后端同构防止重复渲染
2018/01/05 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
基于Vue实现图片在指定区域内移动的思路详解
2018/11/11 Javascript
JS数组扁平化(flat)方法总结详解
2019/06/24 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
vue配置多代理服务接口地址操作
2020/09/08 Javascript
vue mvvm数据响应实现
2020/11/11 Javascript
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
python进阶之自定义可迭代的类
2019/08/20 Python
opencv 获取rtsp流媒体视频的实现方法
2019/08/23 Python
Python实现CAN报文转换工具教程
2020/05/05 Python
Python json格式化打印实现过程解析
2020/07/21 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
2014/04/16 HTML / CSS
巴西最大的在线约会网站:ParPerfeito
2018/07/11 全球购物
设计部经理的岗位职责
2013/11/16 职场文书
物理研修随笔感言
2014/02/14 职场文书
高中语文课后反思
2014/04/27 职场文书
5s推行计划书
2014/05/06 职场文书
小学教师个人先进事迹材料
2014/05/17 职场文书
如何写求职信
2014/05/24 职场文书
上诉答辩状范文
2015/05/22 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python
什么是动态刷新率DRR? Windows11动态刷新率功能介绍
2021/11/21 数码科技