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线性表顺序存储实现代码(增删查改)
Feb 16 PHP
用穿越火线快速入门php面向对象
Feb 22 PHP
深入分析php中接口与抽象类的区别
Jun 08 PHP
php中字符集转换iconv函数使用总结
Oct 11 PHP
php站内搜索关键词变亮的实现方法
Dec 30 PHP
php实现四舍五入的方法小结
Mar 03 PHP
PHP网络操作函数汇总
May 18 PHP
在PHP中使用FastCGI解析漏洞及修复方案
Nov 10 PHP
编写PHP脚本来实现WordPress中评论分页的功能
Dec 10 PHP
Yii框架连接mongodb数据库的代码
Jul 27 PHP
php的命名空间与自动加载实现方法
Aug 25 PHP
PHP 加密 Password Hashing API基础知识点
Mar 02 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对图像的各种处理函数代码小结
2013/07/08 PHP
大家在抢红包,程序员在研究红包算法
2015/08/31 PHP
Codeigniter控制器controller继承问题实例分析
2016/01/19 PHP
php+laravel依赖注入知识点总结
2019/11/04 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
jquery构造器的实现代码小结
2011/05/16 Javascript
js+css实现增加表单可用性之提示文字
2013/06/03 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
javascript实现自动填写表单实例简析
2015/12/02 Javascript
AngularJS 文件上传控件 ng-file-upload详解
2017/01/13 Javascript
微信小程序多张图片上传功能
2017/06/07 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
2018/05/31 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
JavaScript事件对象深入详解
2018/12/30 Javascript
js控制随机数生成概率代码实例
2019/03/21 Javascript
js+canvas实现简单扫雷小游戏
2021/01/22 Javascript
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
2014/11/19 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
2017/06/09 Python
python读取csv文件并把文件放入一个list中的实例讲解
2018/04/27 Python
如何使用Python实现自动化水军评论
2019/06/26 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
django 微信网页授权认证api的步骤详解
2019/07/30 Python
python中使用np.delete()的实例方法
2021/02/01 Python
什么是事务?为什么需要事务?
2012/01/09 面试题
什么是重载?CTS、CLS和CLR分别做何解释
2012/05/06 面试题
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
自我评价怎么写正确呢?
2013/12/02 职场文书
财务总监管理职责范文
2014/03/09 职场文书
债务纠纷委托书
2014/08/30 职场文书
一份关于丢失公司财物的检讨书
2014/09/19 职场文书
人事文员岗位职责
2015/02/04 职场文书
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL