php冒泡排序与快速排序实例详解


Posted in PHP onDecember 07, 2015

本文实例分析了php冒泡排序与快速排序算法。分享给大家供大家参考,具体如下:

$a=array('3','8','1','4','11','7');
print_r($a);
$len = count($a);
//从小到大
for($i=1;$i<$len;$i++)
{
for($j=$len-1;$j>=$i;$j--)
if($a[$j]<$a[$j-1])
{//如果是从大到小的话,只要在这里的判断改成if($b[$j]>$b[$j-1])就可以了
 $x=$a[$j];
 $a[$j]=$a[$j-1];
 $a[$j-1]=$x;
}
}
print_r($a);j
//另一种方法 从小到大
$b=array('4','3','8','9','2','1');
$len=count($b);
for($k=1;$k<$len;$k++)
{
for($j=$len-1,$i=0;$i<$len-$k;$i++,$j--)
if($b[$j]<$b[$j-1]){
//如果是从大到小的话,只要在这里的判断改成if($b[$j]>$b[$j-1])就可以了
 $tmp=$b[$j];
 $b[$j]=$b[$j-1];
 $b[$j-1]=$tmp;
}
print_r($b);
echo "
";
}
//下面的这个执行效率更高
function maopao($arr)
{
 $len = count($arr);
 for($i=1; $i<$len; $i++)//最多做n-1趟排序
 {
 $flag = false;  //本趟排序开始前,交换标志应为假
 for($j=$len-1;$j>=$i;$j--)
 {
  if($arr[$j]<$arr[$j-1])//交换记录
  {//如果是从大到小的话,只要在这里的判断改成if($arr[$j]>$arr[$j-1])就可以了
   $x=$arr[$j];
   $arr[$j]=$arr[$j-1];
   $arr[$j-1]=$x;
   $flag = true;//发生了交换,故将交换标志置为真
  }
 }
 if(! $flag)//本趟排序未发生交换,提前终止算法
 return $arr;  
 }
}
$shuz = array('2','4','1','8','5');
$bb = maopao($shuz);
print_r($bb);
// 快速排序
function kuaisu($arr){
  $len = count($arr);
  if($len <= 1){
    return $arr;
  }
  $key = $arr[0];
  $left_arr = array();
  $right_arr = array();
  for($i=1; $i<$len;$i++){
    if($arr[$i] <= $key){
      $left_arr[] = $arr[$i];
    }else{
      $right_arr[] = $arr[$i];
    }
  }
  $left_arr = kuaisu($left_arr);
  $right_arr = kuaisu($right_arr);
  return array_merge($left_arr, array($key), $right_arr);
}
$arr = array(23,98,54,2,9,62,34);
print_r(kuaisu($arr));

希望本文所述对大家php程序设计有所帮助。

PHP 相关文章推荐
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
Apr 09 PHP
php中根据变量的类型 选择echo或dump
Jul 05 PHP
深入phpMyAdmin的安装与配置的详细步骤
May 07 PHP
解析如何用php screw加密php源代码
Jun 20 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
Jun 25 PHP
php preg_replace替换实例讲解
Nov 04 PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
May 04 PHP
php字符串截取函数用法分析
Nov 25 PHP
PHP判断手机是IOS还是Android
Dec 09 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
Mar 16 PHP
实现laravel 插入操作日志到数据库的方法
Oct 11 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 PHP
PHP常用工具类大全附全部代码下载
Dec 07 #PHP
PHP+ajax分页实例简析
Dec 07 #PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
Dec 07 #PHP
php+ajax无刷新分页实例详解
Dec 07 #PHP
64位windows系统下安装Memcache缓存
Dec 06 #PHP
windows平台中配置nginx+php环境
Dec 06 #PHP
使用PHP实现下载CSS文件中的图片
Dec 06 #PHP
You might like
sql注入与转义的php函数代码
2013/06/17 PHP
php内核解析:PHP中的哈希表
2014/01/30 PHP
PHP实现的比较完善的购物车类
2014/12/02 PHP
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
ThinkPHP发送邮件示例代码
2016/10/08 PHP
PHP设计模式之建造者模式定义与用法简单示例
2018/08/13 PHP
php扩展开发入门demo示例
2019/09/23 PHP
JScript中使用ADODB.Stream判断文件编码的代码
2008/06/09 Javascript
FileUpload 控件 禁止手动输入或粘贴的实现代码
2010/04/07 Javascript
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
jquery.post用法示例代码
2014/01/03 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
2015/02/13 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
2019/04/28 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
node.js通过url读取文件
2020/10/16 Javascript
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
PyQt 线程类 QThread使用详解
2017/07/16 Python
Python3计算三角形的面积代码
2017/12/18 Python
Python扩展内置类型详解
2018/03/26 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
元组列表字典(莫烦python基础)
2019/04/03 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
python Django 创建应用过程图示详解
2019/07/29 Python
Python利用requests模块下载图片实例代码
2019/08/12 Python
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
军训自我鉴定范文
2014/02/13 职场文书
工商管理专业自荐信
2014/06/03 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
运动会主持人开幕词
2016/03/04 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
docker-compose部署Yapi的方法
2022/04/08 Servers
Nginx反向代理、重定向
2022/04/13 Servers