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 相关文章推荐
第七节 类的静态成员 [7]
Oct 09 PHP
实用的简单PHP分页集合包括使用方法
Oct 21 PHP
php实现事件监听与触发的方法
Nov 21 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
Nov 22 PHP
php定时执行任务设置详解
Feb 06 PHP
学习php设计模式 php实现抽象工厂模式
Dec 07 PHP
Smarty模板简单配置与使用方法示例
May 23 PHP
PHP sleep()函数, usleep()函数
Aug 25 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
Nov 30 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
May 31 PHP
php简单计算权重的方法示例【适合抽奖类应用】
Jun 10 PHP
PHP 技巧 * SVG 保存为图片(分享图生成)
Apr 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对大文件进行读取操作的实现代码
2013/01/23 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
php面向对象值单例模式
2016/05/03 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
2016/11/20 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
JS 时间显示效果代码
2009/08/23 Javascript
鼠标滚轮控制网页横向移动实现思路
2013/03/22 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
详解JavaScript编程中正则表达式的使用
2015/10/25 Javascript
用NodeJS实现批量查询地理位置的经纬度接口
2016/08/16 NodeJs
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
2017/02/05 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
BetterScroll 在移动端滚动场景的应用
2017/09/18 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
2018/04/28 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
2019/12/06 Javascript
JS数组进阶示例【数组的几种函数用法】
2020/01/16 Javascript
[01:11]steam端dota2实名认证操作流程视频
2021/03/11 DOTA
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
python 两个数据库postgresql对比
2019/10/21 Python
基于Python实现扑克牌面试题
2019/12/11 Python
深入浅析python的第三方库pandas
2020/02/13 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
sklearn的predict_proba使用说明
2020/06/28 Python
Python 高效编程技巧分享
2020/09/10 Python
使用CSS3制作饼状旋转载入效果的实例
2015/06/23 HTML / CSS
CSS中的字体大小设置属性总结
2016/05/24 HTML / CSS
三好学生自我鉴定
2013/12/17 职场文书
马云的职业生涯规划之路
2014/01/01 职场文书
知识竞赛拉拉队口号
2014/06/16 职场文书
前台接待岗位职责
2015/02/03 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python
react 项目中引入图片的几种方式
2021/06/02 Javascript