php排序算法

冒泡排序

$arr = [8,1,9,2,5,7,2,3];
//从小到大
function maopao_asc($arr){
	for ($i=0; $i < count($arr) ; $i++) { 
		for ($j=0; $j < count($arr)-1; $j++) { 
			if ($arr[$j]>$arr[$j+1]) {
				$tmp = $arr[$j];
				$arr[$j] = $arr[$j+1];
				$arr[$j+1] = $tmp;
			}
		}
	}
	return $arr;
}

//从大到小
function maopao_desc($arr){
	for ($i=0; $i < count($arr); $i++) { 
		for ($j=0; $j < count($arr)-1; $j++) { 
			if($arr[$j]<$arr[$j+1]){
				$tmp = $arr[$j];
				$arr[$j] = $arr[$j+1];
				$arr[$j+1] = $tmp;
			}
		}
	}
	return $arr;
}
print_r(maopao_desc($arr));

快速排序

function quick_sort($arr) {
    if (count($arr) <= 1) return $arr;
    $key = $arr[0];
    $left_arr = array();
    $right_arr = array();
    for ($i=1; $i<count($arr); $i++){
        if ($arr[$i] <= $key)
            $left_arr[] = $arr[$i];
        else
            $right_arr[] = $arr[$i];
    }
    $left_arr = quick_sort($left_arr);
    $right_arr = quick_sort($right_arr);
    return array_merge($left_arr, array($key), $right_arr);
}
posted @ 2019-11-29 14:15  L-ran  阅读(111)  评论(0)    收藏  举报