技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 算法 --> 基本排序算法的PHP实现

基本排序算法的PHP实现

浏览:2903次  出处信息

以下是代码片段:

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();  
?> 

建议继续学习:

  1. 如何使用1M的内存排序100万个8位数    (阅读:11004)
  2. 快速排序(Quicksort)的Javascript实现    (阅读:10151)
  3. 腾讯-1亿个数据取前1万大的整数-题解答    (阅读:9091)
  4. 深入浅出插入类排序算法(直接插入, 折半插入, 希尔排序)    (阅读:6258)
  5. 深入浅出交换类排序算法(冒泡排序,快速排序)    (阅读:6055)
  6. Java程序员必知的8大排序算法    (阅读:4539)
  7. Mysql中的排序优化    (阅读:4418)
  8. Vim(gVim)对排序的妙用    (阅读:4270)
  9. 快速排序详细分析    (阅读:3970)
  10. 深入浅出选择类排序算法(简单选择排序,堆排序)    (阅读:3820)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
  • 作者:tim    来源: PHPec
  • 标签: 排序
  • 发布时间:2009-10-17 14:32:14
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1