>php教程 >PHP源码 >使用 php 进行冒泡排序

使用 php 进行冒泡排序

WBOY
WBOY원래의
2016-06-02 09:14:181040검색
跳至 [1] [全屏预览]
<meta charset="gb2312" />
<?PHP
    //数组元素值从小到大排序
    $arr=array(1,42,0,3,15,7,19,26);
	foreach($arr as $k=>$v)
	echo " index:$k -- value:$v<br>";
	
    echo "<hr color=red />";
	echo "After applying sort() <br>";	
	$ar=$arr;
    //定义一个中间变量
	sort($ar);
   	print_r($ar); 
	
	echo '<br><hr color=red />';
  	echo "使用 冒泡排序";
    $temp=0;
    //外层循环的次数
    for($i=0;$i<count($arr)-1;$i++){
		$exchange=false;
        //内层之间向右相邻的两个数组元素值进行比较
        for($j=0;$j<count($arr)-1-$i;$j++){
            //当后一个数组元素值大于前一个数组原数值
            if($arr[$j]>$arr[$j+1]){
            //数组元素交换
               $temp=$arr[$j];
               $arr[$j]=$arr[$j+1];
               $arr[$j+1]=$temp;
			   $exchange=true;
              }

           }
        //外层数组循环的次数是---count($arr)-1
        //-1的原因(数组元素值比较时是两个比较
        //如3个数组元素比较2次
        echo "这是第".($i+1)."次比较的结果";
        echo "<pre/>";
        print_r($arr);
        echo "<pre/>";
		if (!$exchange) 
		break;
       }
    echo "<hr color=red />";
    echo "<pre/>";
    print_r($arr);
    echo "<pre/>"

?>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:一个简单的路由类다음 기사:显示周一到周日