PHP版选择排序法

<?php
	// 选择排序法函数
	function selection_sort(&$array) {
		$array_length = count($array); // 数组的长度
		$temp = 0; // 交换时用到的临时变量
		
		for ($i = 0; $i < $array_length - 1; $i++) {
			// 认为数组第$i个元素为第$i趟中的最小值,记录该$i。
			$min_value_index = $i;
			
			// 与剩余的数组元素比较大小
			for ($j = $i + 1; $j < $array_length; $j++) {
				if ($array[$min_value_index] > $array[$j]) {
					$min_value_index = $j; // 之前假设数组最小值不成立,重新记录最小值的key。
				}
			}
			
			// 当$min_value_index的值发生变化才交换
			if ($min_value_index != $i) {
				$temp = $array[$i];
				$array[$i] = $array[$min_value_index];
				$array[$min_value_index] = $temp;
			} 
		}
	}
	
	// 数组打印函数
	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);
	
	// 调用函数
	selection_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,选择排序法)