常用的PHP排序算法以及应用场景
2024-10-11 22:37:36
更多php排序算法应用常景:http://www.bf361.com/algorithm/algorithm-php
1、冒泡排序
冒泡排序:冒泡排序(Bubble
Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端。
[平均算法复杂度:O(n*n)]
应用场景分析:冒泡排序因为是两两之间逐个进行排序,所以稳定性比较好,即排序所消耗的时间比较稳定(稳定不代表快),可用于对排序时间要求性比较稳定的项目。可针对多样性的数据进行排序:比如待排序的数据变化性比较大,各数据元素之间的跨度比较大,避免最坏情况的出现使消耗的时间过多。
function bubble_sort($arr) {
$n=count($arr);
for($i=0;$i<$n-1;$i++){
for($j=$i+1;$j<$n;$j++) {
if($arr[$j]<$arr[$i]) {
$temp=$arr[$i];
$arr[$i]=$arr[$j];
$arr[$j]=$temp;
}
}
}
return $arr;
} $arr = ['12','65','20','22','32','52','3'];
// 记录开始时间
$time_start = microtime();
$res = bubble_sort($arr);
echo "
";
print_r($res);
echo "
"; // 记录结束时间 $time_end = microtime(); $time = $time_end - $time_start; // 输出运行总时间 echo "执行时间 $time 微秒";
最新文章
- Linux中profile文件详解(转)
- android之服务
- select * 所有字段时如何巧妙的使用覆盖索引
- Python子类方法的调用(类方法)
- java中的类实现comparable接口 用于排序
- java的Arrays类的应用
- Unity Diffuse Metal Shader Mod
- Android WebView和JavaScript交互
- 安装appuim
- Problem D
- 取得 iframe 容器的 URL
- 快速构建SPA框架SalutJS--项目工程目录 一
- C#基础加强(4)之秒懂IL、CTS、CLS和CLR
- python之tkinter使用-滚动条
- 部署redis5.0.3
- OData查询ASP.NET Web API全攻略
- asp.net mvc文件下载
- Xmind8 (update8)破解教程
- Java缓存相关memcached、redis、guava、Spring Cache的使用
- VS2010 无法启动程序,系统找不到指定的文件