加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

php常用排序算法有哪几种?这八种排序算法你知多少

发布时间:2022-04-07 16:10:38 所属栏目:语言 来源:互联网
导读:学习PHP过程中,对于一些基本的排序算法大家还是需要掌握的,算法作为程序的核心,其好坏会影响到程序的质量,因此这篇文章就给大家介绍一些PHP常用排序算法的方法,文本还有PHP的实现代码,供大家参考,下面我们就来一起看看。 1 快速排序 快速排序是由东尼
       学习PHP过程中,对于一些基本的排序算法大家还是需要掌握的,算法作为程序的核心,其好坏会影响到程序的质量,因此这篇文章就给大家介绍一些PHP常用排序算法的方法,文本还有PHP的实现代码,供大家参考,下面我们就来一起看看。
 
       1 快速排序
 
       快速排序是由东尼・霍尔发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。
 
       事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环可以在大部分的架构上,很有效率地被实现出来。
  
       快速排序采用分治法实现排序,具体步骤:从数列中挑出一个数作为基准元素。通常选择第一个或最后一个元素。扫描数列,以基准元素为比较对象,把数列分成两个区。规则是:小的移动到基准元素前面,大的移到后面,相等的前后都可以。分区完成之后,基准元素就处于数列的中间位置。然后再用同样的方法,递归地排序划分的两部分。
 
       递归的结束条件是数列的大小是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]]; 

(编辑:云计算网_泰州站长网)

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

    热点阅读