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
php面向对象全攻略 (五) 封装性
Sep 30 PHP
php和javascript之间变量的传递实现代码
Dec 19 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
Jun 27 PHP
php实现window平台的checkdnsrr函数
May 27 PHP
Cygwin中安装PHP方法步骤
Jul 04 PHP
PHP简单实现断点续传下载的方法
Sep 25 PHP
php编程每天必学之验证码
Mar 03 PHP
Zend Framework动作助手Url用法详解
Mar 05 PHP
修改Laravel5.3中的路由文件与路径
Aug 10 PHP
在 PHP 和 Laravel 中使用 Traits的方法
Nov 13 PHP
PHP与Web页面交互操作实例分析
Jun 02 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开发入门教程之面向对象
2006/12/05 PHP
mysql,mysqli,PDO的各自不同介绍
2012/09/19 PHP
PHP getallheaders无法获取自定义头(headers)的问题
2016/03/23 PHP
php实现保存周期为1天的购物车类
2017/07/07 PHP
PHP小白必须要知道的php基础知识(超实用)
2017/10/10 PHP
php精度计算的问题解析
2019/06/21 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
2020/05/29 PHP
jsTree树控件(基于jQuery, 超强悍)[推荐]
2009/09/01 Javascript
禁止拷贝网页内容的js代码
2014/01/22 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
BootStrap的table表头固定tbody滚动的实例代码
2016/08/24 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
2018/03/06 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
2018/10/17 Javascript
vue点击按钮实现简单页面的切换
2020/09/08 Javascript
JavaScript实现商品评价五星好评
2020/11/30 Javascript
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
2014/06/10 Python
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
python实现矩阵打印
2019/03/02 Python
简单了解python的内存管理机制
2019/07/08 Python
Python及Pycharm安装方法图文教程
2019/08/05 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
web字体加载方案优化小结
2019/11/29 HTML / CSS
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
美国最大的购物网站:Amazon.com(亚马逊美国)
2020/05/23 全球购物
学校庆元旦歌咏比赛主持词
2014/03/18 职场文书
网站客服岗位职责
2014/04/05 职场文书
和谐社区口号
2014/06/19 职场文书
学习三严三实对照检查材料思想汇报
2014/09/22 职场文书
2015年综治宣传月活动总结
2015/03/25 职场文书
离婚协议书范文2016
2016/03/18 职场文书
2019暑期安全倡议书!
2019/06/27 职场文书
Golang 入门 之url 包
2022/05/04 Golang