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+APACHE实现用户论证的方法
Oct 09 PHP
php基础知识:类与对象(4) 范围解析操作符(::)
Dec 13 PHP
php下使用curl模拟用户登陆的代码
Sep 10 PHP
Windows 下的 PHP-PEAR 安装方法
Nov 20 PHP
初品cakephp 入门基础
Feb 16 PHP
深入PHP操作MongoDB的技术总结
Jun 02 PHP
php实现插入数组但不影响原有顺序的方法
Mar 27 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
May 27 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
Jul 07 PHP
PHP简单日历实现方法
Jul 20 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
May 09 PHP
PHP二维数组分页2种实现方法解析
Jul 09 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报错configure error Cannot find libmysqlclient under usr的解决方法
2014/06/27 PHP
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
深入解析PHP的Yii框架中的缓存功能
2016/03/29 PHP
使用php完成常见的文件上传功能(推荐)
2017/01/13 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
2019/10/16 PHP
php array_map()函数实例用法
2021/03/03 PHP
javascript Array.remove() 数组删除
2009/08/06 Javascript
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
javascript使用location.search的示例
2013/11/05 Javascript
Angular企业级开发——MVC之控制器详解
2017/02/20 Javascript
HTML中使背景图片自适应浏览器大小实例详解
2017/04/06 Javascript
详解Angular 4.x 动态创建组件
2017/04/25 Javascript
Vue侧滑菜单组件——DrawerLayout
2017/12/18 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
2018/02/27 Javascript
Python的Tornado框架实现异步非阻塞访问数据库的示例
2016/06/30 Python
python 同时运行多个程序的实例
2019/01/07 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
Python中最好用的命令行参数解析工具(argparse)
2019/08/23 Python
python将字典列表导出为Excel文件的方法
2019/09/02 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
5款实用的python 工具推荐
2020/10/13 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
英国领先的NHS批准的在线药店:Pharmacy2U
2017/01/06 全球购物
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
美国基督教约会网站:ChristianCafe.com
2020/02/04 全球购物
犹他州最古老的体育用品公司:Al’s
2020/12/18 全球购物
护士自我评价
2014/02/01 职场文书
酒鬼酒广告词
2014/03/21 职场文书
电力培训心得体会
2014/09/02 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
民族学专业大学生职业规划范文:清晰未来的构想
2014/09/20 职场文书
男方婚前保证书
2015/02/28 职场文书
活动经费申请报告
2015/05/15 职场文书
2015年体育教学工作总结
2015/05/20 职场文书
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python
Vue OpenLayer 为地图绘制风场效果
2022/04/24 Vue.js