没有合适的资源?快使用搜索试试~ 我知道了~
本文主要介绍了一些常用的排序算法,以及PHP的代码实现等,希望对您能有所帮助。 本文来自于awaimai.com,由火龙果软件Luca编辑推荐。 作为phper,一般接触算法的编程不多。 但基本的排序算法还是应该掌握。 毕竟算法作为程序的核心,算法的好坏决定了程序的质量。 本文将依次介绍一些常用的排序算法,以及PHP实现。 1 快速排序 快速排序是由东尼·霍尔发展的一种排序算法。 在平均状况下,排序 n 个项目要Ο(n log n)次比较。 在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。 事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环可以在大部分的架构
资源详情
资源评论
资源推荐
PHP实现常用排序算法的方法实现常用排序算法的方法
本文主要介绍了一些常用的排序算法,以及PHP的代码实现等,希望对您能有所帮助。
本文来自于awaimai.com,由火龙果软件Luca编辑推荐。
作为phper,一般接触算法的编程不多。
但基本的排序算法还是应该掌握。
毕竟算法作为程序的核心,算法的好坏决定了程序的质量。
本文将依次介绍一些常用的排序算法,以及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];
}
}
// 再分别对左右数组进行相同的排序
$left = quickSort($left);
$right = quickSort($right);
// 合并基准元素和左右数组
return array_merge($left, array($pivot), $right);
}
weixin_38499336
- 粉丝: 8
- 资源: 953
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0