<?php
$arr = array(12,1,5,88,35,0,18,100,50,21,28,7,9,9.5);//交换两值
function swap(&$m, &$n){$temp = $m;$m = $n;$n = $temp;/* 如数组中有小数时,以下方法会省略小数点后面的数$m = $m ^ $n;$n = $m ^ $n;$m = $m ^ $n;*/
}//冒泡排序
function bubbleSort($arr){if(!is_array($arr)) return $arr;$count = count($arr);for($i=1; $i<$count; $i++){for($j=0; $j<$count-$i;$j++){if($arr[$j] > $arr[$j+1]){/*$temp = $arr[$j];$arr[$j] = $arr[$j+1];$arr[$j+1] = $temp;*//*$arr[$j] = $arr[$j] + $arr[$j+1];$arr[$j+1] = $arr[$j] - $arr[$j+1];$arr[$j] = $arr[$j] - $arr[$j+1];*//*$arr[$j] = $arr[$j] ^ $arr[$j+1];$arr[$j+1] = $arr[$j] ^ $arr[$j+1];$arr[$j] = $arr[$j] ^ $arr[$j+1];*/swap($arr[$j], $arr[$j+1]);}}}return $arr;
}$arr2 = bubbleSort($arr);
echo implode(',', $arr2).'<hr>';//冒泡排序
function bubbleSort2($arr){if(!is_array($arr)) return $arr;$count = count($arr);for($i=0; $i<$count-1; $i++){for($j=$i+1; $j<$count; $j++){if($arr[$i] < $arr[$j]){/*$arr[$i] = $arr[$i] + $arr[$j];$arr[$j] = $arr[$i] - $arr[$j];$arr[$i] = $arr[$i] - $arr[$j];*/swap($arr[$i], $arr[$j]);}}}return $arr;
}
$arr3 = bubbleSort2($arr);
echo implode(',', $arr3).'<hr>';;//快速排序
function quickSort($arr){if(!is_array($arr)) return $arr;$len=count($arr);for($i=0; $i<$len; $i++){$min = $arr[$i];for($j=$i+1; $j<$len; $j++){if($arr[$i] > $arr[$j]){$temp = $arr[$i];$arr[$i] = $arr[$j];$arr[$j] = $temp;}}$min = $arr[$j];}return $arr;
}
$arr4 = quickSort($arr);
echo implode(',', $arr4);
?>

转载于:https://www.cnblogs.com/lltong/archive/2012/07/09/2582223.html

php冒泡排序和快速排序笔记相关推荐

  1. java 冒泡排序和快速排序 实现

    面试的时候经常会遇到面试官让你直接手写排序算法,下面是冒泡排序和快速排序的实现. 冒泡排序 基本流程就是,自下而上比较相邻的两个元素进行比较,让大的元素往下面沉,较小的往上冒.按照排序规则进行比较,如 ...

  2. 数据结构和算法系列5 七大排序之冒泡排序和快速排序

    排序是我们生活中经常会面对的问题.同学们做操时会按照从矮到高排列:老师查看上课出勤情况时,会按学生学号顺序点名:高考录取时,会按成绩总分降序依次录取等.排序是数据处理中经常使用的一种重要的运算,它在我 ...

  3. 牛客网Java刷题知识点之插入排序(直接插入排序和希尔排序)、选择排序(直接选择排序和堆排序)、冒泡排序、快速排序、归并排序和基数排序(博主推荐)...

    不多说,直接上干货! 插入排序包括直接插入排序.希尔排序. 1.直接插入排序: 如何写成代码: 首先设定插入次数,即循环次数,for(int i=1;i<length;i++),1个数的那次不用 ...

  4. 排序算法之交换排序(冒泡排序、快速排序)

    交换排序(冒泡排序.快速排序) 交换排序 冒泡排序 概念 算法实现 快速排序 概念 算法实现 后续 交换排序 所谓交换,是指根据序列中两个关键字的比较结果来对换这两个记录在排序中的位置. 冒泡排序 概 ...

  5. 数据结构—排序算法总结(插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、合并排序、计数排序)

    *排序 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作. 稳定性 在待排序的数组中,如果出现多个相同的关键字,例如:98751555512,中出现重复的数字,在 ...

  6. 冒泡排序代码_凡人能看懂的冒泡排序和快速排序(附动态图和代码详解))

    这是第一篇公众号文章,所以内容打算写的浅简一点. 这篇文章将主要介绍两种非常普遍的排序方式:冒泡排序和快速排序.内容包括两种排序的原理,代码剖析,以及时间复杂度分析. 因为注意到很多快排的文章在介绍完 ...

  7. (面试必知)必知必会的冒泡排序和快速排序

    前一篇给大家介绍了<优化的直接插入排序(二分查找插入排序,希尔排序)>,现在继续介绍其他排序算法 本博文介绍两个最常被提起的排序算法:冒泡排序和快速排序.冒泡排序是入门排序算法,思路比较常 ...

  8. 常用排序:冒泡排序与快速排序详解,看完这篇就够了!风马博客

    常用排序:冒泡排序与快速排序详解. 在排序算法中,冒泡排序和快速排序可以算是排序算法入门必会的两种排序了,今天和大家来分析一下如何快速理解并掌握这两种排序.首先冒泡排序是初学者最常用的排序,所以我们先 ...

  9. 插入排序、希尔排序(Shell)、选择排序、堆排序、冒泡排序、快速排序、归并排序和基数排序(桶排)的 时间复杂度和空间复杂度

    插入排序 希尔排序(Shell) 选择排序 堆排序 冒泡排序 快速排序 归并排序和基数排序(桶排) 的 时间复杂度(平均情况.平均情况和最坏情况)和 空间复杂度. 排序方法 名称 是否需要 比较关键字 ...

最新文章

  1. MPB:北大口腔陈峰、陈智滨等-​口腔微生物组研究主要取样部位及方法
  2. Spring Hibernate Mybatis配置详解
  3. ORACLE分区表删除分区数据
  4. 《构建之法》需求分析 读书笔记 Week6
  5. oracle中sequence详解
  6. 安装ssr_网易《代号SSR》电脑版教程!
  7. 易语言远程查询oracle数据库连接,易语言如何连接远程服务器上的数据库,并读取数据...
  8. pytorch---在训练中动态的调整学习率
  9. java day02 【数据类型转换、运算符、方法入门】
  10. MS SQL Server 事务回滚处理!
  11. 希尔伯特变换与SSB调制
  12. 图解 Kafka,画得太好了!
  13. 快速上手 Spring Boot 项目开发
  14. 计算机存储器——内存、外存详解
  15. FCoin重启调查:近2亿美元债务何去何从 |链捕手
  16. 置放群组(Placement groups)
  17. c语言tan函数源码,tan - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
  18. 【数据结构原理】系统生命周期 | 算法规范 | 笔记
  19. 如何备份网站到本地电脑(适用虚拟主机)
  20. 新西兰天维网:新西兰净移民数量呈下降趋势

热门文章

  1. rds数据加密_如何保障云上数据安全?一文详解云原生全链路加密
  2. 一张图告诉你E-R图怎么画
  3. 万用表检测常用元器件的方法
  4. VxWorks下Shell调试总结
  5. 求解决方法_解决方法
  6. 在农村有100万存款,算有钱人吗?
  7. 亚洲综合竞争力排名发布:韩国位居第1,中国第9,大家怎么看?
  8. 北京有一个“牧人”合唱团
  9. C++ Applications
  10. qt开发环境 - c++之结构,联合,枚举