码迷,mamicode.com
首页 > 编程语言 > 详细

四种简单的排序算法的php实现

时间:2015-09-07 00:21:51      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

  无聊,用php写几个排序算法,算法介绍请移步这里,这里使用php实现了几个简单的,如下

//选择排序
function selection_sort($arr){
    $len = count($arr);
    if($len <= 1) return $arr;
    
    for($i=0; $i<$len; $i++){
        $min = $arr[$i];
        $pos = $i;
        for($j=$i+1; $j<$len; $j++){
            if($min > $arr[$j]){
                $min = $arr[$j];
                $pos = $j;
            }
        }
        if($pos != $i){
            $arr[$pos] = $arr[$i];
            $arr[$i] = $min;
        }
    }
    return $arr;
}

//插入排序
function insertion_sort($arr){
    $len = count($arr);
    if($len <= 1) return $arr;
    
    for($i=1; $i<$len; $i++){
        $insertion = $arr[$i];
        $j = $i - 1;
        while($insertion < $arr[$j]){
            $arr[$j+1] = $arr[$j];
            $j--;
            if($j < 0)break;
        }
        if($j == $i-1) continue;
        $arr[$j+1] = $insertion;
    }
    return $arr;
}

//冒泡排序
function bubble_sort($arr){
    $len = count($arr);
    if($len <= 1) return $arr;
    
    for($i=0; $i<$len; $i++){
        for($j=$len-1; $j>$i;  $j--){
            if($arr[$j] < $arr[$j-1]){
                $tmp = $arr[$j];
                $arr[$j] = $arr[$j-1];
                $arr[$j-1] = $tmp;
            }
        }
    }
    return $arr;
}

//快速排序
function quick_sort($arr){
    $len = count($arr);
    if($len <= 1) return $arr;
    
    $base = current($arr);
    $left_arr = array();
    $right_arr = array();
    
    for($i=1; $i<$len; $i++){
        if($arr[$i] <= $base) $left_arr[] = $arr[$i];    
        if($arr[$i] > $base) $right_arr[] = $arr[$i];    
    }
    
    $left_arr = quick_sort($left_arr);
    $right_arr = quick_sort($right_arr);
    return array_merge($left_arr, array($base), $right_arr);
    
}

//test
$arr = array(4, 3, 2, 1, 6);
$arr_sorted = quick_sort($arr);
print_r($arr_sorted);

 

四种简单的排序算法的php实现

标签:

原文地址:http://www.cnblogs.com/kekukele/p/4787633.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!