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版本号
Oct 09 PHP
php实现的在线人员函数库
Apr 09 PHP
php切割页面div内容的实现代码分享
Jul 31 PHP
PHP笔记之:日期函数的使用介绍
Apr 24 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
Apr 01 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
Oct 29 PHP
php中 $$str 中 &quot;$$&quot; 的详解
Jul 06 PHP
php获取给定日期相差天数的方法分析
Feb 20 PHP
基于PHP实现的多元线性回归模拟曲线算法
Jan 30 PHP
PHP后期静态绑定实例浅析
Dec 21 PHP
thinkPHP5框架接口写法简单示例
Aug 05 PHP
thinkphp5.1 框架钩子和行为用法实例分析
May 25 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
用PHP制作静态网站的模板框架(一)
2006/10/09 PHP
php中将地址生成迅雷快车旋风链接的代码[测试通过]
2011/04/20 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
javascript 计算两个整数的百分比值
2009/12/26 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
2013/04/24 Javascript
JQuery异步获取返回值中文乱码的解决方法
2015/01/29 Javascript
Json解析的方法小结
2016/06/22 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
微信小程序之仿微信漂流瓶实例
2016/12/09 Javascript
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
Angularjs实现上传图片预览功能
2017/09/01 Javascript
vue axios登录请求拦截器
2018/04/02 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
2018/08/20 Javascript
js实现前面自动补全位数的方法
2018/10/10 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
python批量同步web服务器代码核心程序
2014/09/01 Python
使用Python的Zato发送AMQP消息的教程
2015/04/16 Python
python字典get()方法用法分析
2015/04/17 Python
Python中字典创建、遍历、添加等实用操作技巧合集
2015/06/02 Python
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
Python for i in range ()用法详解
2020/09/18 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
django restframework serializer 增加自定义字段操作
2020/07/15 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
企业车辆管理制度
2014/01/24 职场文书
买房委托公证书
2014/04/08 职场文书
2016年万圣节活动个人总结
2016/04/05 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS