PHP冒泡排序和选择排序的理解

<?php
	/*冒泡排序*/
	//定义需要排序的数组
	$arrData = array(-3,66,-5,19,188,99,0);
	//定义执行排序的函数
	function popSort(&$arrData){  
		for ($i=0; $i < count($arrData); $i++) {  //从数组的第一个元素开始,直到最后
			for ($j=1; $j < count($arrData); $j++) {   //进行两两元素比较然后调换位置排序所做的操作
				if ($arrData[$j-1] > $arrData[$j]) {
					$temp = $arrData[$j-1];   //如果前一个元素大于后一个元素,将其先放置到一空容器,然后交换位置
					$arrData[$j -1] = $arrData[$j];
					$arrData[$j] = $temp;
				}				
			}
		}
	}
	popSort($arrData);
	print_r($arrData);

	/*选择排序*/
	function selectSort(&$arrData){
		for ($i=0; $i < count($arrData); $i++) {  
			for ($k= $i+1; $k < count($arrData); $k++) {  //外层从第一个元素开始,取定一个元素后,则逐一跟后几个元素进行比较交换位置(依次是第一个元素跟第二个元素比较,第一个元素跟第三个元素比较,····,外层第二个元素,则第二个元素与第三个元素进行比较,第二个元素与第四个元素比较···依次类推
				if ($arrData[$i] > $arrData[$k]){
					$temp = $arrData[$i];
					$arrData[$i] = $arrData[$k];
					$arrData[$k] = $temp;
				}
			}
		}
	}
	selectSort($arrData);
	var_dump($arrData);

?>

猜你喜欢

转载自blog.csdn.net/zhousulian/article/details/80408712