加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

php常用排序算法有哪一些?这八种排序算法你明白多少

发布时间:2022-04-14 13:28:36 所属栏目:语言 来源:互联网
导读:学习PHP过程中,对于一些基本的排序算法大家还是需要掌握的,算法作为程序的核心,其好坏会影响到程序的质量,因此这篇文章就给大家介绍一些PHP常用排序算法的方法,文本还有PHP的实现代码,供大家参考,下面我们就来一起看看。 1 快速排序 快速排序是由东尼
      学习PHP过程中,对于一些基本的排序算法大家还是需要掌握的,算法作为程序的核心,其好坏会影响到程序的质量,因此这篇文章就给大家介绍一些PHP常用排序算法的方法,文本还有PHP的实现代码,供大家参考,下面我们就来一起看看。
 
       1 快速排序
 
       快速排序是由东尼・霍尔发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。
  
       递归的结束条件是数列的大小是0或1,也就是永远都已经被排序好了。
 
       PHP代码实现:
 
function quickSort($arr)
 {
 $len = count($arr);
 // 先设定结束条件,判断是否需要继续进行
 if($len <= 1) {
 return $arr;
 }
 
 // 选择第一个元素作为基准元素
 $pivot = $arr[0];
 
 // 初始化左数组
 $left = $right = array();
 
// 初始化大于基准元素的右数组
 $right = array();
 
 // 遍历除基准元素外的所有元素,按照大小关系放入左右数组内
 for ($i = 1; $i < $len ; $i++) {
 if ($arr[$i] < $pivot) {
 $left[] = $arr[$i];
 } else {
 $right[] = $arr[$i];
 }
 }
 
 while ($arr[$rightIndex] > $pivot) {
 $rightIndex--;
 }
 
 if ($leftIndex <= $rightIndex) {
 list($arr[$leftIndex], $arr[$rightIndex]) = [$arr[$rightIndex], $arr[$leftIndex]];
 
 $leftIndex++;
 $rightIndex--;

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读