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 相关文章推荐
用文本文件制作留言板提示(上)
Oct 09 PHP
PHP 高手之路(一)
Oct 09 PHP
php实现自动获取生成文章主题关键词功能的深入分析
Jun 03 PHP
Yii框架关联查询with用法分析
Dec 02 PHP
php使用类继承解决代码重复的问题
Feb 11 PHP
yii通过小物件生成view的方法
Oct 08 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
Nov 16 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
Jul 03 PHP
浅谈thinkphp5 instance 的简单实现
Jul 30 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
May 02 PHP
PHP实现的多维数组去重操作示例
Jul 21 PHP
php文件后缀不强制为.php的实操方法
Sep 18 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设计模式 Command(命令模式)
2011/06/26 PHP
关于IIS php调用com组件的权限问题
2012/01/11 PHP
php之Memcache学习笔记
2013/06/17 PHP
IIS下PHP的三种配置方式对比
2014/11/20 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
如何打开php的gd2库
2017/02/09 PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
2019/09/12 PHP
Js判断参数(String,Array,Object)是否为undefined或者值为空
2013/11/04 Javascript
可插入图片的TEXT文本框
2013/12/27 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
2018/08/28 Javascript
使用pdb模块调试Python程序实例
2015/06/02 Python
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
python实现八大排序算法(2)
2017/09/14 Python
django中的setting最佳配置小结
2017/11/21 Python
Python yield与实现方法代码分析
2018/02/06 Python
Python将图片转换为字符画的方法
2020/06/16 Python
基于DataFrame筛选数据与loc的用法详解
2018/05/18 Python
Python爬虫实现(伪)球迷速成
2018/06/10 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
css3 transform导致子元素固定定位变成绝对定位的方法
2020/03/06 HTML / CSS
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
viagogo意大利票务平台:演唱会、体育比赛、戏剧门票
2018/01/26 全球购物
文秘专业大学生求职信
2013/11/10 职场文书
洗煤厂厂长岗位职责
2014/01/03 职场文书
留学推荐信写作指南
2014/01/25 职场文书
销售人员求职信
2014/07/22 职场文书
公安学专业求职信
2014/07/27 职场文书
事业单位个人总结
2015/02/12 职场文书
校园歌手大赛主持词
2015/07/03 职场文书
新党员入党决心书
2015/09/22 职场文书
Java elasticsearch安装以及部署教程
2021/06/28 Java/Android