<?php
function BubbleSort($str)
{
for ($i=0;$i<count($str);$i++)
{
for ($j=count($str)-2;$j>=$i;$j--)
{
if($str[$j+1]<$str[$j])
{
$tmp = $str[$j+1]; $str[$j+1]=$str[$j];
$str[$j]=$tmp;
} }}
return $str;
}
$str = array(3,6,1,5,9,0,4,6,11);
print_r(BubbleSort($str));
?>
function BubbleSort($str)
{
for ($i=0;$i<count($str);$i++)
{
for ($j=count($str)-2;$j>=$i;$j--)
{
if($str[$j+1]<$str[$j])
{
$tmp = $str[$j+1]; $str[$j+1]=$str[$j];
$str[$j]=$tmp;
} }}
return $str;
}
$str = array(3,6,1,5,9,0,4,6,11);
print_r(BubbleSort($str));
?>
从数组的倒数第二个数字开始向前循环,当后一个数小于前一个数就交换位置每次i循环后的结果如下:
1: (0,3,6,1,5,9,4,6,11);
2: (0,1,3,6,4,5,9,6,11);
3: (0,1,3,4,6,5,6,9,11);
4: (0,1,3,4,5,6,6,9,11); //排序已成功,但是循环继续。
5: (0,1,3,4,5,6,6,9,11);
6: (0,1,3,4,5,6,6,9,11);
7: (0,1,3,4,5,6,6,9,11);
8: (0,1,3,4,5,6,6,9,11);
9: (0,1,3,4,5,6,6,9,11);