道者编程


PHP冒泡法

1:从第一个数开始比对

<?php

function sorts($list)
{
	if(!is_array($list)) return false;
	$count = count($list);

	if(empty($count)) return false;

	for($i=0;$i<$count;$i++){ //外层循环数组

		//内层循环,相邻的数对比,对比count-1次,循环一次,把最小或者最大的沉入数组最后
		//这样每次循环数就减少一次。
		for($j=0;$j<$count-1-$i;$j++){ //循环一次得到一个最大数或者最小数,故循环次数减1

			if($list[$j]<$list[$j+1]){ //交换位置
				$tmp = $list[$j];
				$list[$j] = $list[$j+1];
				$list[$j+1] = $tmp;
			}
		}
	}
	print_r($list);
}

$list = ['10','11','2','5','0','1'];

sorts($list);
 

2:从最后一个数开始比对

<?php

function sorts($list)
{
	if(!is_array($list)) return false;
	$count = count($list);

	if(empty($count)) return false;

	for($i=0;$i<$count;$i++)
	{
		for($j=$count-1;$j>$i;$j--) //从数组最后一个元素往前面推
	    {
	    	if($list[$j]<$list[$j-1]){
				$tmp = $list[$j];
				$list[$j] = $list[$j-1];
				$list[$j-1] = $tmp;
	  	 	}
	  }
	}
	return $list;
}

$list = ['10','11','2','5','0','1'];

sorts($list);
 

        


最新评论:
我要评论:

看不清楚


道知

about me

身体是革命的本钱,健身,养生,运动,公众号都有!

链接