您的位置:首页 > 理论基础 > 数据结构算法

[php]数据结构&算法(PHP描述) 冒泡排序 bubble sort

2011-07-08 23:50 519 查看
<?php
/**
* 冒泡排序 bubble sort
*
* 原理:多次循环进行比较,每次比较时将最大数移动到最上面。每次循环时,找出剩余变量里的最大值,然后减小查询范围。这样经过多次循环以后,就完成了对这个数组的排序
*/
function sort_bubble($list)
{
$len=count($list);
if(empty($len)) return$list;
$is_change=false;

for($i=0;$i<$len; $i++)
{
for($j=$i+1; $j<$len; $j++)
{
$flag='';
if($list[$i] >$list[$j]) // 从小到大
//if($list[$i] < $list[$j]) // 从大到小
{
$tmp=$list[$i];
$list[$i] =$list[$j];
$list[$j] =$tmp;

$is_change=true; // 进行了交换

$flag=" change";
}
echoimplode(',',$list).$flag."<br/>";
}

if(!$is_change) { // 如果第一轮没有发生值交换的话,说明传入的数组是顺序,不需要再进行排序了
break;
}

echo"-------------------------<br/>";
}
return$list;
}

$list=array(4,3,2,1,5,7,3,7);
$list= sort_bubble($list);


根据 @楚风 提示修改了一下 如果第一轮没有发生值交换的话 跳出; 2011-07-26
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: