首页 > 代码库 > php algorithm - bubble

php algorithm - bubble

<?php 
 //php algorithm bubble

 // 3, 8 , 99, 75, 23, 1, 29, 51, 24, 13, 78.

//第一次循环,如果有小元素就往后走,即冒泡,这样循环一次,最小的1就冒泡到最顶部了,即$array[10]=1;
//第二次循环,如果有小元素就往后走,及冒泡,这样循环一次,第二小的3就冒泡到倒数第二的位置了,即$array[9]=3;
//...以此类推。遍历循环数组的个数-1次,就按照从大到小将数组排序了,

//其中可以做些优化,第一次冒泡需要冒泡到最后一个元素,第二次就冒泡到倒数第二个元素就ok了,即count($array)-2,还可以优化的地方这里就不做深入探讨了。
function dump($arr){
	echo '<pre>';
	print_r($arr);
	echo '</pre>';
}

$array  =  array(3,8,99,75,23,1,29,51,24,13,78);

dump($array);

for($i=0;$i<count($array);$i++){
	for($j=0;$j<count($array)-$i-1;$j++){
		if($array[$j]<$array[$j+1]){
			$temp = $array[$j];
			$array[$j] = $array[$j+1];
			$array[$j+1] = $temp;
		}
	}
}
dump($array);