汇总PHP最常见的四种排序算法
2023-02-18 16:39:47 时间
PHP最常见的四种排序算法分别是:冒泡排序法,选择排序法、插入排序法和快速排序法。下面我们就分别给出四种排序算法的实现代码,供大家参考。
1.冒泡排序法
<?php
function bubble_sort($array)
{
$count = count($array);
if ($count == 0) {
return false;
}
for ($i=0; $i<$count; $i++) {
for ($k=$count-1; $k>$i; $k--) {
if ($array[$k] < $array[$k-1]) {
$tmp = $array[$k];
$array[$k] = $array[$k-1];
$array[$k-1] = $tmp;
}
}
}
return $array;
}
$a = array(2, 5, 1, 3, 4);
$a = bubble_sort($a);
var_dump($a);
?>
2.选择排序法
<?php
function select_sort($array)
{
$len = count($array);
for($i=0; $i<$len-1; $i++) {
$p = $i;
for($j=$i+1; $j<$len; $j++) {
if($array[$p] > $array[$j]) {
$p = $j;
}
}
if($p != $i) {
$tmp = $array[$p];
$array[$p] = $array[$i];
$array[$i] = $tmp;
}
}
return $array;
}
$a = array(2, 5, 1, 3, 4);
$a = select_sort($a);
var_dump($a);
?>
3.插入排序法
<?php
function insert_sort($array)
{
$len = count($array);
for($i=1; $i<$len; $i++) {
$tmp = $array[$i];
for($j=$i-1; $j>=0; $j--) {
if($tmp < $array[$j]) {
$array[$j+1] = $array[$j];
$array[$j] = $tmp;
} else {
break;
}
}
}
return $array;
}
$a = array(2, 5, 1, 3, 4);
$a = insert_sort($a);
var_dump($a);
?>
4.快速排序法
<?php
function quick_sort($array)
{
$len = count($array);
if ($len <= 1) {
return $array;
}
$base = $array[0];
$left = array();
$right = array();
for ($i=1; $i<$len; $i++) {
if($base > $array[$i]) {
$left[] = $array[$i];
} else {
$right[] = $array[$i];
}
}
$left = quick_sort($left);
$right = quick_sort($right);
return array_merge($left, array($base), $right);
}
$a = array(2, 5, 1, 3, 4);
$a = quick_sort($a);
var_dump($a);
?>
阳光部落原创,更多内容请访问http://www.sunbloger.com/
相关文章
- 解决GoLand无法Debug
- 三天上手Go以及实战Gin+Gorm
- Typecho 迁移到 Hugo
- GitHub Actions 自动部署 Hexo 脚本
- Hugo .GitInfo 的替代方案
- Gitea 安装备忘
- 一个整数+1,攻破了Linux内核!
- 我在Github上发现了一个好东西!
- 如何将 Power BI 模板化,一键构建出一切
- PowerBI 四象限通用分析模式系列之一
- 微软宣布:PowerBI 已经与 Office 整合,一切更简单,变革又来了
- 业财融合用PowerBI怎么搞?一个案例一本书用二十四个模块告诉你答案
- Power BI 大换皮肤,迎来更新
- Power BI 量本利营亏平衡分析模型
- PowerBI 统一数据建模最佳实践 - 框架篇
- 使用Django快速搭建reportServer
- go-redis版本不一致导致CPU使用率问题
- Go的方法接收者:值接收者与指针接收者
- linux通过命令上传到s3(aws命令),支持所有平台
- Photoshop CS2软件下载地址及安装教程(mac+windows全版本PS,包括最新2023)