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 相关文章推荐
Linux下ZendOptimizer的安装与配置方法
Apr 12 PHP
第三章 php操作符与控制结构代码
Dec 30 PHP
php防止恶意刷新与刷票的方法
Nov 21 PHP
PHP获取POST数据的几种方法汇总
Mar 03 PHP
PHP实现批量生成App各种尺寸Logo
Mar 19 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
Apr 17 PHP
php实现在多维数组中查找特定value的方法
Jul 29 PHP
Laravel框架路由设置与使用示例
Jun 12 PHP
php 将json格式数据转换成数组的方法
Aug 21 PHP
php面试实现反射注入的详细方法
Sep 30 PHP
关于laravel5.5的定时任务详解(demo)
Oct 23 PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 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实现一个简单的用户登记表示例
2017/04/25 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
javascript浏览器兼容教程之事件处理
2014/06/09 Javascript
javascript正则表达式基础知识入门
2015/04/20 Javascript
JavaScript中用于四舍五入的Math.round()方法讲解
2015/06/15 Javascript
javascript中的五种基本数据类型
2015/08/26 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
jquery跟随屏幕滚动效果的实现代码
2016/04/13 Javascript
javacript获取当前屏幕大小
2016/06/04 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
JavaScript中的ajax功能的概念和示例详解
2016/10/17 Javascript
网页挂马方式整理及详细介绍
2016/11/03 Javascript
详解使用nvm安装node.js
2017/07/18 Javascript
js 两数组去除重复数值的实例
2017/12/06 Javascript
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
vue element-ui读取pdf文件的方法
2019/11/26 Javascript
vue路由缓存的几种实现方式小结
2020/02/02 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
python实现读Excel写入.txt的方法
2018/04/29 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
如何利用python给图片添加半透明水印
2019/09/06 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
解决Django no such table: django_session的问题
2020/04/07 Python
Python实现自动整理文件的脚本
2020/12/17 Python
用python读取xlsx文件
2020/12/17 Python
美国高档百货Nordstrom的折扣店:Nordstrom Rack
2017/11/13 全球购物
Mountain Hardwear官网:攀岩服装和户外装备
2019/09/26 全球购物
微信营销策划方案
2014/02/24 职场文书
个人安全承诺书
2014/05/22 职场文书
敬老院标语
2014/06/27 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
2014年接待工作总结
2014/11/26 职场文书
2015大学自主招生自荐信范文
2015/03/04 职场文书
六一儿童节致辞
2015/07/31 职场文书