header('Content-Type: text/html; charset=utf-8'); // 简单冒泡算法 $a = array(5,43,3,2,1); function mp($a){ $len=count($a); //传值 要是数组 for($i=0;$i<$len;$i++){ /*
* 最多做n-1趟排序 * i=0 i<5 i++ * 这里为什么要-2呢 * 因为数组是从0开始的 所以要-1 * 然后 一比较最后一位 和倒数第二位 * 这是从最后开始与前面的比较 */ for ($j=$len-1;$j>=$i;$j--){
// j=4 j<i j-- //这里$j>=$i的原因是:每个数都要进行冒泡运算,匹配之后,运行次数逐渐减少. //判断数组最大的位数 和第二大的相比 if ($a[$j]<$a[$j-1]){ echo $a[$j],'------小于-----',$a[$j-1],'----------排列前:',fnsort($a); //如果最大位数的小于第二大位数的就换位置 $tmp = $a[$j]; $a[$j]=$a[$j-1]; $a[$j-1]=$tmp; echo '------------排列后:',fnsort($a),'<br><hr>'; } } } return $a; } echo fnsort(mp($a)); function fnsort($arr){ foreach($arr as $value){ echo $value .','; } }