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中使用与Perl兼容的正则表达式
Nov 26 PHP
解析如何屏蔽php中的phpinfo()函数
Jun 06 PHP
深入extjs与php参数交互的详解
Jun 25 PHP
thinkphp3查询mssql数据库乱码解决方法分享
Feb 11 PHP
php实现加减法验证码代码
Feb 14 PHP
php发送get、post请求的6种方法简明总结
Jul 08 PHP
PHP简单选择排序算法实例
Jan 26 PHP
php array_merge函数使用需要注意的一个问题
Mar 30 PHP
WordPress开发中自定义菜单的相关PHP函数使用简介
Jan 05 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
Jul 02 PHP
php str_replace替换指定次数的方法详解
May 05 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
Mar 26 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 header函数使用教程
2013/09/05 PHP
php中的比较运算符详解
2013/10/28 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
2016/03/21 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
Javascript条件判断使用小技巧总结
2008/09/08 Javascript
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
javascript级联下拉列表实例代码(自写)
2013/05/10 Javascript
解决json日期格式问题的3种方法
2014/02/02 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
js中string转int把String类型转化成int类型
2014/08/13 Javascript
javascript操作字符串的原生方法
2014/12/22 Javascript
本人自用的global.js库源码分享
2015/02/28 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
2015/03/26 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
JavaScript编写一个贪吃蛇游戏
2017/03/09 Javascript
js实现一个简单的数字时钟效果
2017/03/29 Javascript
nodejs中sleep功能实现暂停几秒的方法
2017/07/12 NodeJs
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
2020/06/19 Javascript
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
python 同时运行多个程序的实例
2019/01/07 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
2019/06/17 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
python中return的返回和执行实例
2019/12/24 Python
python自动化发送邮件实例讲解
2021/01/04 Python
html5响应式开发自动计算fontSize的方法
2020/01/13 HTML / CSS
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
写好自荐信要注意的问题
2013/11/10 职场文书
工商技校毕业生自荐信
2013/11/15 职场文书
高中生职业生涯规划书
2014/02/24 职场文书
党员岗位承诺书
2014/03/25 职场文书
暑期培训班策划方案
2014/08/26 职场文书
落实八项规定专题民主生活会对照检查材料
2014/09/15 职场文书
2016年小学植树节活动总结
2016/03/16 职场文书
教你使用Python pypinyin库实现汉字转拼音
2021/05/27 Python