IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

基本排序算法的PHP实现

PHPec 2009-10-17 14:32:14 累计浏览 3,554 次
本机暂存

以下是代码片段:

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. Four Levels Of Customer Understanding (2026-05-22 21:00:00)
  2. 除法的意义 (2026-04-12 20:52:17)
  3. 第五章:共识算法 (2026-03-18 08:00:00)

查看更多 算法 文章 →

建议继续学习

  1. 使用gettext来支持PHP的多语言 (累计阅读 39,199)
  2. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,101)
  3. Paypal接口详细代码(PHP版,非API接口) (累计阅读 19,356)
  4. 我的PHP,Python和Ruby之路 (累计阅读 13,078)
  5. include(“./file.php”)和include(“file.php”)区别 (累计阅读 12,735)
  6. 15个最好的免费开源电子商务平台 (累计阅读 12,477)
  7. 为什么算法这么难? (累计阅读 12,338)
  8. Redis消息队列的若干实现方式 (累计阅读 12,016)
  9. 到底什么是MVC? (累计阅读 11,729)
  10. 浅谈MySQL索引背后的数据结构及算法 (累计阅读 11,594)