PHP版冒泡排序法

<?php
	// 冒泡排序函数
	function bubble_sort(&$array) {
		$is_ordered = true; // 认为默认是有序的
		$array_length = count($array);
		$temp = 0;
		
		// 进行数组排序
		for ($i = 0; $i < $array_length - 1; $i++) {
			for ($j = 0; $j < $array_length - 1 - $i; $j++) {
				if ($array[$j] > $array[$j + 1]) {
					$temp = $array[$j];
					$array[$j] = $array[$j + 1];
					$array[$j + 1] = $temp;
					
					$is_ordered = false; // 数组是无序的
				}
			}
			
			// 判断是否可以结束数组的排序
			if (!$is_ordered) {
				$is_ordered = true; // 再次认为数组是有序的
			} else {
				break; // 此时数组是有序的,无需继续循环,跳出外层for循环。
			}
		}
	}
	
	// 数组打印函数
	function print_array($array) {
		foreach ($array as $key => $value) {
			echo "\$array[$key] = $value <br />";
		}
	}
	
	// 初始化数组
	$array = array(1, -1, 3, 3, 2, 9, -10, 7, 6, 5);
	
	// 调用函数
	bubble_sort($array);
	print_array($array);
	
	/* 输出
	$array[0] = -10 
	$array[1] = -1 
	$array[2] = 1 
	$array[3] = 2 
	$array[4] = 3 
	$array[5] = 3 
	$array[6] = 5 
	$array[7] = 6 
	$array[8] = 7 
	$array[9] = 9
	*/
?>

你可能感兴趣的:(PHP,冒泡排序)