ok7758521ok

人往往因情入圣,因爱入魔,只有瞬时间的顿悟才是至高的境界。

李天华ID:ok7758521ok
34592次访问,排名3300好友6人,关注者11
开发工程师
ok7758521ok的文章
原创 86 篇
翻译 1 篇
转载 31 篇
评论 4 篇
ok7758521ok的公告
人往往因情入圣,因爱入魔,只有瞬时间的顿悟才是至高的境界。
最近评论
世界友好网:同一个世界,同一个理想
(世界友好网www.sjyh.org)
zhousyis66:楼上的请提供程序包
不要贴
heiyeluren:转载不说明出处,哼~~~~嘎嘎
Thaiki:现顶了
文章分类
收藏
    相册
    o m i
    桌面
    php相关链接
    PHPchina国内权威的PHP技术论坛
    php官方网站
    一本书计划
    喜悦国际,专业的phper论坛
    老韩,我的兄弟,HOHO为人yes,做事,yes,文采great!!
    超越php论坛
    黑夜路人(俺兄弟)开源世界
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 PHP实现常见排序算法 收藏

    新一篇: 数据结构和字符串处理代码整理  | 旧一篇: php中require和include的区别

    插入排序、选择排序、,冒泡排序,时间复杂度貌似都是 O(N2),所以实际意义不大,在实际测试中,我对3000个数组元素进行,这三种排序算法都需要花费80秒左右,而快速排序只需要8秒,差距确是比较大,有兴趣的可以自己测试一下。

     

    <?
    //插入排序(一维数组)
    function insert_sort($arr){
        
    $count = count($arr);
        
    for($i=1$i<$count$i++){
            
    $tmp = $arr[$i];
            
    $j = $i - 1;
            
    while($arr[$j> $tmp){
                
    $arr[$j+1= $arr[$j];
                
    $arr[$j= $tmp;
                
    $j--;
            }
        }
        
    return $arr;
    }


    //选择排序(一维数组)
    function select_sort($arr){
        
    $count = count($arr);
        
    for($i=0$i<$count$i++){
            
    $k = $i;
            
    for($j=$i+1$j<$count$j++){
                
    if ($arr[$k> $arr[$j])
                    
    $k = $j;
                
    if ($k != $i){
                    
    $tmp = $arr[$i];
                    
    $arr[$i= $arr[$k];
                    
    $arr[$k= $tmp;
                }
            }
        }
        
    return $arr;
    }

    //冒泡排序(一维数组) 
    function bubble_sort($array){ 
        
    $count = count($array); 
        
    if ($count <= 0return false
        
        
    for($i=0$i<$count$i++){ 
            
    for($j=$count-1$j>$i$j--){ 
                
    if ($array[$j< $array[$j-1]){ 
                    
    $tmp = $array[$j]; 
                    
    $array[$j= $array[$j-1]; 
                    
    $array[$j-1= $tmp
                } 
            } 
        } 
        
    return $array


    //快速排序(一维数组) 
    function quick_sort($array){ 
        
    if (count($array<= 1return $array

        
    $key = $array[0]; 
        
    $left_arr = array(); 
        
    $right_arr = array(); 
        
    for ($i=1$i<count($array); $i++){ 
            
    if ($array[$i<= $key
                
    $left_arr[] = $array[$i]; 
            
    else 
                
    $right_arr[] = $array[$i]; 
        } 
        
    $left_arr = quick_sort($left_arr); 
        
    $right_arr = quick_sort($right_arr); 
        
        
    return array_merge($left_arr, array($key), $right_arr); 


    ?>

     

     

    发表于 @ 2007年08月12日 23:16:00|评论(loading...)|编辑

    新一篇: 数据结构和字符串处理代码整理  | 旧一篇: php中require和include的区别

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © ok7758521ok