1. 程式人生 > 其它 >php-冒泡、快速排序

php-冒泡、快速排序

技術標籤:快速排序

	#冒泡
	//理解:倆輪迴圈
	function bubbleSort($array) {
		$count = count($array);
		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 quickSort($array) {
		$count = count($array);
		if ($count <= 1) return $array;
		$leftArr = $rightArr = [];
		$first = $array[0];
		for ($i = 1; $i < $count; $i++) {
			if ($array[$i] <= $first) {
				$leftArr[] = $array[$i];
			} else {
				$rightArr[] = $array[$i];
			}
		}
		$leftArr = quickSort($leftArr);
		$rightArr = quickSort($rightArr);
		return array_merge($leftArr, [$first], $rightArr);
	}