php之冒泡排序
思路:
1. 一趟比较:从数组的左边起,依次两两比较相邻的两个元素,如果发现左边的元素大于右边的元素,则交换两个元素的位置,这样进行一趟比较后,必然有个最大值排在数组最右边;
2. 一趟比较中假如有n个数据,则两两比较的次数是n-1次,每一趟比较的数据个数都会比前一趟少一个;
3. n个数据,每一趟完成一个数据的位置排序,那么只需要n-1趟次即可确定全部数据的位置排序。
function bubbleSort($arr)
{
$len = count($arr);
//外循环决定排序的趟次
for($i=0;$i<$len-1;$i++)
{
//从数组的左边起,依次两两比较相邻的两个元素,如果发现左边的元素大于右边的元素,则交换两个元素的位置
for($j=0;$j<$len-1-$i;$j++)
{
if($arr[$j]>$arr[$j+1])
{
//交换两个元素位置
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $temp;
}
}
}
}