PHP实现四种基本排序算法

本文中主要展示了用php 实现冒泡排序法,快速排序法,选择排序法,插入排序法

并以从小到大的顺序进行排序。 

1、冒泡排序

function bubbleSort($arr){
    $count = count($arr);
    for($i=0;$i<$count;$i++){
        for($k=0;$k<$count-1;$k++){
	    if($arr[$i]<$arr[$k]){
	        $temp = $arr[$k];
		$arr[$k]= $arr[$i];
		$arr[$i]= $temp;
	    }
        }
    }
    return $arr;
}

2、选择排序

function selectSort($arr){
    $count = count($arr);
    for($i=0;$i<$count-1;$i++){
	$min = $i;
	for($k=$i+1;$k<$count;$k++){
	    if($arr[$min]>$arr[$k]){
		$min = $k;
	    }
	}

        if($min != $i){
	    $temp = $arr[$min];
	    $arr[$min]=$arr[$i];
	    $arr[$i]=$temp;
        }
    }
    return $arr;}

3、选择排序

function insertSort($arr){
    $count = count($arr);
    for($i=1;$i<$count;$i++){
        $temp = $arr[$i];
	for($k=$i-1;$k>=0;$k--){
	    if($temp<$arr[$k]){
		$arr[$k+1]=$arr[$k];
		$arr[$k] = $temp;
	    }else{
		break;
	    }
	}
    }
    return $arr;
}

4、快速排序

function quickSort($arr) {
    $length = count($arr);
    if($length <= 1) {
        return $arr;
    }
    $base_num = $arr[0];

    $left_array = array();  
    $right_array = array(); 
    for($i=1; $i<$length; $i++) {
        if($base_num > $arr[$i]) {
            $left_array[] = $arr[$i];
        } else {
            $right_array[] = $arr[$i];
        }
    }

    $left_array = quickSort($left_array);
    $right_array = quickSort($right_array);

    return array_merge($left_array, array($base_num), $right_array);
}