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 adodb连接带密码access数据库实例,测试成功
May 14 PHP
php 全局变量范围分析
Aug 07 PHP
Ajax+PHP 边学边练 之二 实例
Nov 24 PHP
php的一些小问题
Jul 03 PHP
php-cli简介(不会Shell语言一样用Shell)
Jun 03 PHP
PHP操作Memcache实例介绍
Jun 14 PHP
php使用glob函数遍历文件和目录详解
Sep 23 PHP
ThinkPHP中create()方法自动验证实例
Apr 26 PHP
Laravel网站打开速度优化的方法汇总
Jul 16 PHP
详解Yaf框架PHPUnit集成测试方法
Dec 27 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
Jan 29 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 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 XPath对XML文件查找及修改实现代码
2011/07/27 PHP
destoon数据库表说明汇总
2014/07/15 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
JQuery之拖拽插件实现代码
2011/04/14 Javascript
jQuery中json对象的复制方式介绍(数组及对象)
2013/06/08 Javascript
javascript基于DOM实现权限选择实例分析
2015/05/14 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
跟我学习javascript的var预解析与函数声明提升
2015/11/16 Javascript
强大Vue.js组件浅析
2016/09/12 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
javascript自执行函数
2017/02/10 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
通过fastclick源码分析彻底解决tap“点透”
2017/12/24 Javascript
JS实现非首屏图片延迟加载的示例
2018/01/06 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
[03:08]TI9战队档案 - Vici Gaming
2019/08/20 DOTA
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
浅谈Django自定义模板标签template_tags的用处
2017/12/20 Python
详解python的四种内置数据结构
2019/03/19 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
运动会广播稿60字
2014/01/15 职场文书
工会主席事迹材料
2014/06/03 职场文书
学校四风对照检查材料
2014/08/28 职场文书
龙门石窟导游词
2015/02/02 职场文书
辞职申请书范本
2019/05/20 职场文书
使用canvas实现雪花飘动效果的示例代码
2021/03/30 HTML / CSS
如何使JavaScript休眠或等待
2021/04/27 Javascript
MySQL创建定时任务
2022/01/22 MySQL
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸
Python&Matlab实现樱花的绘制
2022/04/07 Python
用Python仅20行代码编写一个简单的端口扫描器
2022/04/08 Python