更多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 微秒";

最新文章

  1. Linux中profile文件详解(转)
  2. android之服务
  3. select * 所有字段时如何巧妙的使用覆盖索引
  4. Python子类方法的调用(类方法)
  5. java中的类实现comparable接口 用于排序
  6. java的Arrays类的应用
  7. Unity Diffuse Metal Shader Mod
  8. Android WebView和JavaScript交互
  9. 安装appuim
  10. Problem D
  11. 取得 iframe 容器的 URL
  12. 快速构建SPA框架SalutJS--项目工程目录 一
  13. C#基础加强(4)之秒懂IL、CTS、CLS和CLR
  14. python之tkinter使用-滚动条
  15. 部署redis5.0.3
  16. OData查询ASP.NET Web API全攻略
  17. asp.net mvc文件下载
  18. Xmind8 (update8)破解教程
  19. Java缓存相关memcached、redis、guava、Spring Cache的使用
  20. VS2010 无法启动程序,系统找不到指定的文件

热门文章

  1. 二分算法的应用——最大化平均值 POJ 2976 Dropping tests
  2. Django 2.0.1 官方文档翻译: 编写你的第一个 Django app,第二部分(Page 7)
  3. Redis学习五:Redis的持久化-RDB
  4. .NET 定时器类及使用方法
  5. [转载]IIS6.0开启WOFF/SVG文件支持
  6. github 新创建repositories
  7. Vim,Emacs排名不分先后
  8. 多进程+协程 处理IO问题
  9. classList属性
  10. mnist 手写数字识别