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读取XML值的代码(推荐)
Jan 01 PHP
php 字符串替换的方法
Jan 10 PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
Jun 27 PHP
将时间以距今多久的形式表示,PHP,js双版本
Sep 25 PHP
php addslashes 利用递归实现使用反斜线引用字符串
Aug 05 PHP
PHP获取当前url的具体方法全面解析
Nov 26 PHP
PHP二维数组排序的3种方法和自定义函数分享
Apr 09 PHP
php程序总是提示验证码输入有误解决方案
Jan 07 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
Mar 18 PHP
PHP抓取网页、解析HTML常用的方法总结
Jul 01 PHP
php 基础函数
Feb 10 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
Dec 26 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
域名和cookie问题(域名后缀)
2012/10/10 PHP
PHP读取xml方法介绍
2013/01/12 PHP
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
PHP htmlentities()函数用法讲解
2019/02/25 PHP
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
2011/03/17 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
JavaScript中this的四个绑定规则总结
2016/09/26 Javascript
js实现3d悬浮效果
2017/02/16 Javascript
three.js加载obj模型的实例代码
2017/11/10 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
2018/08/24 Javascript
koa2的中间件功能及应用示例
2020/03/05 Javascript
Vue axios 跨域请求无法带上cookie的解决
2020/09/08 Javascript
在Django的模型中添加自定义方法的示例
2015/07/21 Python
Python实现字典依据value排序
2016/02/24 Python
Python3中详解fabfile的编写
2018/06/24 Python
正则给header的冒号两边参数添加单引号(Python请求用)
2019/08/09 Python
Python模块的制作方法实例分析
2019/12/21 Python
Python换行与不换行的输出实例
2020/02/19 Python
俄罗斯韩国化妆品网上商店:Cosmasi.ru
2019/10/31 全球购物
纯净、自信、100%的羊绒服装:360Cashmere
2021/02/20 全球购物
C语言笔试题
2014/09/04 面试题
生物制药毕业生自荐信
2013/10/16 职场文书
医学专业本科毕业生自我鉴定
2013/12/28 职场文书
中文专业毕业生自荐书范文
2014/01/04 职场文书
小学竞选班干部演讲稿
2014/08/20 职场文书
考试作弊检讨书1000字(5篇)
2014/10/19 职场文书
护理实习生带教计划
2015/01/16 职场文书
2016国培研修心得体会
2016/01/08 职场文书
前端学习——JavaScript原生实现购物车案例
2021/03/31 Javascript
html5调用摄像头截图功能
2022/01/18 Javascript
Java使用HttpClient实现文件下载
2022/08/14 Java/Android