php选择排序法

1、选择排序法实例详解:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>

<?php 
//忽略notice级错误提示
//error_reporting(E_ALL^E_NOTICE); 
?>
<?php 
/* 选择排序法的思路:就是再第一次循环中,假设第一个数是最小的;然后跟第二个数比较,一直比到最后,找出最小值,然后把最小值跟第一个数的位置互换;再进行下一次循环,找出最小值跟第二个位置的数互换;一直循环数组的个数减去1次;数组就成了有序的了 */
//用函数封装选择排序法
function selectSort(&$arr)  
//注意此处要加地址传递符号;因为数组默认传递的是值,不是地址;若不地址传递,排序的是$arr而不是$asd。
{
	//$arr = array(1,5,3,9,4,8,12,3,0,7,7.6,3.4,6);
	//定义一个中间变量
	$temp = 0;
	//升序排序
	for($i=0;$i<count($arr)-1;$i++)
	{
		//假设$i就是最小的数
		$minVal=$arr[$i];
		//记录我认为最小数的下标
		$minIndex=$i;
		for($j=$i+1;$j<count($arr);$j++)
		{	//如果我认为的最小值不是最小
			if($minVal>$arr[$j])
			{
				$minVal = $arr[$j];
				$minIndex = $j;
			}
		}
		//最后交换
		$temp = $arr[$i];
		$arr[$i] = $arr[$minIndex];
		$arr[$minIndex] = $temp;
	}	
}
$asd = array(1,0,2,9,3,8,4,7,5,6);
//调用选择排序法的函数
selectSort($asd);
//输出排序后数组  升序显示
foreach($asd as $key=>$key_value)
{
	echo '$asd['.$key."]=".$key_value."<br>";
}
?>
</body>
</html>


你可能感兴趣的:(php选择排序法)