中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

我總結的四種排序

發布時間:2020-08-05 19:24:04 來源:網絡 閱讀:498 作者:dfwasds 欄目:開發技術

    本帖為了快速牢靠的記住四種排序。


冒泡排序

冒泡排序的時間復雜度是O(n^2);

外層控制趟數,并且跟內層排序個數相關。

$arr = [1,5,4,9,11];
$n = count($arr);
$max = $n - 1;

for($i = 0; $i < $max; $i++){
    for($j = 0; $j < $max - $i; $j++){
        if($arr[$j] > $arr[$j+1]){
            $t = $arr[$j];
            $arr[$j] = $arr[$j+1];
            $arr[$j+1] = $t;
        }
    }
}

var_dump($arr);


選擇排序

選擇排序的時間復雜度是O(n^2);

$arr = [1,5,4,9,11];
$n = count($arr) - 1;

for($i = 0; $i<$n; $i++){
    $t = $i;
    for($j = $i+1; $j<$n + 1; $j++){
        if($arr[$t] > $arr[$j]){
            $t = $j;
        }
    }
    if($i != $t){
        $tmp = $arr[$i];
        $arr[$i] = $arr[$t];
        $arr[$t] = $tmp;
    }
}

var_dump($arr);


快速排序

快速排序的時間復雜度是O(nlog2^n);

$arr = [16, 2, 5, 6,19, 8, 10 , 30];

function po(&$arr, $left, $right){
	$key = $arr[$left];
	while($left < $right){
		while($left < $right && $arr[$right] >= $key){
			$right--;
		}
		if($left < $right){
			$arr[$left++] = $arr[$right];
		}
		while($left < $right && $arr[$left] <= $key){
			$left++;
		}
		if($left < $right){
			$arr[$right--] = $arr[$left];
		}
	}

	$arr[$left] = $key;
	return $left;
}

function qs(&$arr, $left, $right){
	if($left >= $right){
		return ;
	}
	$i = po($arr, $left, $right);
	qs($arr, $left, $i-1);
	qs($arr, $i+1, $right);
}
qs($arr, 0, 7);
var_dump($arr);


歸并排序

歸并排序的時間復雜度O(nlog2^n);

$arr = [9, 7, 11, 3, 5, 8, 39, 4];

function gui($arr){
	$n = count($arr);
	if($n <= 1){
	    return $arr;
	}
	$mid = intval($n/2);
	$left = array_slice($arr, 0, $mid);
	$right = array_slice($arr, $mid);
	$left = gui($left);
	$right = gui($right);
	$all = bin($left, $right);
	return $all;
}

function bin($left, $right){
    $arrC = array();
    while(count($left) && count($right)){
        $arrC[] = $left['0'] < $right['0'] ? array_shift($left) : array_shift($right);
    }
    return array_merge($arrC, $left, $right);
}

var_dump(gui($arr));


其中,快速排序和歸并排序都用到了遞歸,所以時間復雜度減少,但難度增大很多。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南木林县| 波密县| 肥城市| 施甸县| 兰州市| 宁河县| 山阳县| 文昌市| 崇明县| 托里县| 理塘县| 扎鲁特旗| 鹤庆县| 泸溪县| 都安| 木兰县| 珠海市| 道孚县| 息烽县| 五寨县| 连云港市| 民权县| 崇信县| 于田县| 榆社县| 三河市| 阿克| 报价| 富宁县| 无棣县| 闵行区| 江源县| 哈密市| 治县。| 房山区| 阿坝县| 上虞市| 三台县| 邳州市| 巫溪县| 永和县|