冒泡排序将数组$arr=[1,7,5,3,3,2]从小到大排序$arr=[1,7,5,3,3,2];函数顺序($arr){$length=count($arr);对于($i=0;$i<$length-1;$i++){对于($j=0;$j<$length-1-$i;$j++)if($arr[$j]>$arr[$j+1]){$temp=$arr[$j+1];$arr[$j+1]=$arr[$j];$arr[$j]=$temp;}else{休息;}}return$arr;}var_dump(order($arr));得到结果数组(6){[0]=>int(1)[1]=>int(2)[2]=>int(3)[3]=>int(3)[4]=>int(5)[5]=>int(7)}比较,逻辑大致是这样的。当i=0时,做第一次冒泡j=0=>1-7比较,7比1大,不变[1,7,5,3,3,2]j=1=>7-5比较,5小于7,交换位置[1,5,7,3,3,2]j=2=>7-3比较,3小于7,交换位置[1,5,3,7,3,2]j=3=>7-3比较,3小于7,交换位置[1,5,3,3,7,2]j=4=>7-2比较,3小于7,交换positions[1,5,3,3,2,7]这样进行一次冒泡,得到最大值7。当i=1时,第二次冒泡j=0=>1-5比较,5比1大,没有变化[1,5,3,3,2,7]j=1=>5-3比较,3小于5,交换位置[1,3,5,3,2,7]j=2=>5-3比较,3小于5,交换位置[1,3,3,5,2,7]j=3=>5-2比较,2小于5,交换位置[1,3,3,2,5,7]这样进行二次冒泡,得到最大值5当i=2时,进行第三次冒泡j=0=>1-3比较,3大于1,不变[1,3,3,2,5,7]j=1=>3-3比较,两者大小相同,不变[1,3,3,2,5,7]j=2=>3-2比较,2小于3,交换位置[1,3,2,3,[5,7]如此进行三次鼓泡,得到最大值3。当i=3时,第四次冒泡j=0=>1-3比较,3比1大,没有变化[1,3,2,3,5,7]j=1=>3-2比较,2小于3,交换位置[1,2,3,3,5,7]所以四次冒泡,得到最大值3,当i=4时,进行第五次冒泡j=0=>1-2比较,2大于1,没有变化[1,2,3,3,5,7]所以冒泡5次,得到最大值2文章参考http://www.cnblogs.com/shen-hua/p/5422676.html
