以下是代码片段:
set_time_limit(0); //冒泡 function bubble($arr){ for($i = 0; $i < count($arr); $i++){ for($j = count($arr)-1; $j > $i; $j--){ if($arr[$j] < $arr[$j-1]){ $temp = $arr[$j]; $arr[$j] = $arr[$j-1]; $arr[$j-1] = $temp; } } } return $arr; } //选择 function select($arr){ for ($i = 0; $i < count($arr); $i++) { $lowIndex = $i; for ($j = count($arr) - 1; $j > $i; $j--) { if ($arr[$j] < $arr[$lowIndex]) { $lowIndex = $j; } } $temp = $arr[$lowIndex]; $arr[$lowIndex] = $arr[$j]; $arr[$j] = $temp; } return $arr; } //插入 function insert($arr){ for($i = 1;$i < count($arr); $i++){ for($j = $i; ($j>0) && ($arr[$j] < $arr[$j-1]); $j--){ $temp = $arr[$j-1]; $arr[$j-1] = $arr[$j]; $arr[$j] = $temp; } } return $arr; } $arr = range(1,1000); shuffle($arr); //benchmark require_once("Benchmark/Timer.php"); $timer = new Benchmark_Timer(); $timer -> start(); bubble($arr); $timer -> setMarker('bubble'); select($arr); $timer -> setMarker('select'); insert($arr); $timer -> setMarker('insert'); sort($arr); $timer -> setMarker('php'); $timer -> display(); ?> |
建议继续学习:
- 如何使用1M的内存排序100万个8位数 (阅读:10902)
- 快速排序(Quicksort)的Javascript实现 (阅读:10090)
- 腾讯-1亿个数据取前1万大的整数-题解答 (阅读:9042)
- 深入浅出插入类排序算法(直接插入, 折半插入, 希尔排序) (阅读:6188)
- 深入浅出交换类排序算法(冒泡排序,快速排序) (阅读:5986)
- Java程序员必知的8大排序算法 (阅读:4458)
- Mysql中的排序优化 (阅读:4361)
- Vim(gVim)对排序的妙用 (阅读:4223)
- 快速排序详细分析 (阅读:3955)
- 深入浅出选择类排序算法(简单选择排序,堆排序) (阅读:3753)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习