冒泡排序
PHP冒泡排序,新菜鸟一枚
冒泡原理
【1】,【2】,【3】,【4】,【5】,【6】
排序原理解析,(从小到大)第一重循环,1和2比较,如果【1】>【2】,大的数在后面,交换【1】和【2】的值,如果【1】<【2】
直接【2】和【3】比较,以此类推、。第一轮循环走完之后,最大的数一定是在最后面。
第二层循环就是同第一个循环,但是只需要比到上一轮的最大的数前面一个就停止。
主要是循环控制的层数,第一层为cuont($array)-1,内层循环为count($array)-1-$i,其中$i为外层循环变量。
function bubblesort($array) { $n=count($array); //需要外循环数字为N-1; for($i=0;$i<$n-1;$i++) { //每循环一次之后,最大的数字跑到最下面,接下来最上面的数字,只需要比较的次数为 //N-1-$i,所以二层循环$j<N-1-$i; for($j=0;$j<$n-1-$i;$j++) { if($array[$j]>$array[$j+1]) { $var=$array[$j]; $array[$j]=$array[$j+1]; $array[$j+1]=$var; } } } //函数返回值为$array;否则结果为空,NULL return $array; } $arr2=array(1.2,5,6,54,45,34.5); if( is_array($arr2)){ echo "数组<br/>"; } //print_r $arr2; $arr3=bubblesort($arr2); if( is_array($arr3)){ echo "数组"; }else{ echo "不是数组"; } //var_dump函数的使用方法为var_dump(变量); var_dump($arr3);