越来越多的公司喜欢在PHP程序员的笔试题中增加排序算法部分,以此来印证PHP程序的计算机基础。今天给大家列出4中常见的PHP排序算法。
1.冒泡排序:(优化过后的)
代码如下:
//冒泡排序
$array = array(11,-3,51,-7,9,100,2,-56,32,21);
$flag = false;
for ($i = 1;$i < count($array);$i++){
for ($j = 0;$j < count($array) - $i;$j++){
if ($array[$j] > $array[$j + 1]){
$temp = $array[$j];
$array[$j] = $array[$j + 1];
$array[$j + 1] = $temp;
$flag = true;
}
}
if (!$flag){
break;
}
$flag = false;
}
foreach ($array as $value){
echo $value.'  ';
}
2.选择排序(自己优化了下)
代码如下:
$array3 = array(11,-3,51,-7,9,100,2,-56,32,21);
for ($i = 0;$i < count($array3) - 1;$i++){
for ($j = $i + 1;$j < count($array3);$j++){
if ($array3[$j] < $array3[$i]){
$temp = $array3[$i];
$array3[$i] = $array3[$j];
$array3[$j] = $temp;
}
}
}
foreach ($array3 as $value){
echo $value.' ';
}
3.插入排序:
代码如下:
$array4 = array(11,-3,51,-7,9,100,2,-56,32,21);
for ($i = 1;$i < count($array4);$i++){
$insertVal = $array4[$i];
$insertIndex = $i - 1;
while ($insertIndex >=0 && $insertVal < $array4[$insertIndex]){
$array4[$insertIndex + 1] = $array4[$insertIndex];
$insertIndex--;
}
$array4[$insertIndex + 1] = $insertVal;
}
foreach ($array4 as $value){
echo $value.' ';
}
4.快速排序
代码如下:
function quickSort($arr){
if (count($arr) < 1){
return $arr;
}
$key = $arr[0];
$left_arr = array();
$right_arr = array();
for($i=1; $i < count($arr); $i++){
if($arr[$i] <= $key){
$left_arr[] = $arr[$i];
} else {
$right_arr[] = $arr[$i];
}
}
$left_arr = quickSort($left_arr);
$right_arr = quickSort($right_arr);
return array_merge($left_arr, array($key), $right_arr);
}
$arr = array(11,-3,51,-7,9,100,2,-56,32,21);
$arr2= quickSort($arr);
foreach ($arr2 as $key=>$value){
echo $value." ";
}
本文来自博客园,作者:孙龙-程序员,转载请注明原文链接:https://www.cnblogs.com/sunlong88/articles/8681510.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能