欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP冒泡排序

程序员文章站 2022-03-21 21:21:08
...
<?php

     $arr = array(1,21,100,3,80,2,30,22,50,45,60,55);
     //这个方法比较笨 
     for($i=0,$c=count($arr)-1;$i<$c;$i++){
		 //比较当前循环元素的值比后面的一个值大 那么就进行位置交换 
		 if($arr[$i]>$arr[$i+1]){
			 $tmp = $arr[$i];
			 $arr[$i] = $arr[$i+1];
			 $arr[$i+1] = $tmp;			 
		 }
	 }
	 for($i=0,$c=count($arr)-1;$i<$c;$i++){
		  if($arr[$i]>$arr[$i+1]){
			 $tmp = $arr[$i];
			 $arr[$i] = $arr[$i+1];
			 $arr[$i+1] = $tmp;			 
		 }
	 }
	 for($i=0,$c=count($arr)-1;$i<$c;$i++){
		   if($arr[$i]>$arr[$i+1]){
			 $tmp = $arr[$i];
			 $arr[$i] = $arr[$i+1];
			 $arr[$i+1] = $tmp;			 
		 }
	 }
     for($i=0,$c=count($arr)-1;$i<$c;$i++){
		  if($arr[$i]>$arr[$i+1]){
			 $tmp = $arr[$i];
			 $arr[$i] = $arr[$i+1];
			 $arr[$i+1] = $tmp;			 
		 }
	 }
	 echo "<pre>";
	 var_dump($arr);
	 echo "</pre>";
?>
运行后的结果 
array(12) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(21)
  [4]=>
  int(22)
  [5]=>
  int(30)
  [6]=>
  int(45)
  [7]=>
  int(50)
  [8]=>
  int(55)
  [9]=>
  int(60)
  [10]=>
  int(80)
  [11]=>
  int(100)
}


<?php 
 $arr = array(1,21,100,3,80,2,30,22,50,45,60,55);
	 for($j=0,$c=count($arr);$j<$c;$j++){
	     for($i=0;$i<$c-1;$i++){
		 //比较当前循环元素的值比后面的一个值大 那么就进行位置交换 
		     if($arr[$i]>$arr[$i+1]){
			    $tmp = $arr[$i];
			    $arr[$i] = $arr[$i+1];
			     $arr[$i+1] = $tmp;			 
		     }
	     }
	 }
	  echo "<pre>";
	  var_dump($arr);
	  echo "</pre>";
?>
运行后的结果 
array(12) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(21)
  [4]=>
  int(22)
  [5]=>
  int(30)
  [6]=>
  int(45)
  [7]=>
  int(50)
  [8]=>
  int(55)
  [9]=>
  int(60)
  [10]=>
  int(80)
  [11]=>
  int(100)
}

<?php

 $arr = array(1,21,100,3,80,2,30,22,50,45,60,55);
	 for($j=0,$c=count($arr);$j<$c;$j++){
	     for($i=0;$i<$c-1-$j;$i++){                       //减的$j是每次排出最大值 
		 //比较当前循环元素的值比后面的一个值大 那么就进行位置交换 
		     if($arr[$i]>$arr[$i+1]){
			    $tmp = $arr[$i];
			    $arr[$i] = $arr[$i+1];
			     $arr[$i+1] = $tmp;			 
		     }
	     }
	 }
	  echo "<pre>";
	  var_dump($arr);
	  echo "</pre>";
?>
运行后的结果 
array(12) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(21)
  [4]=>
  int(22)
  [5]=>
  int(30)
  [6]=>
  int(45)
  [7]=>
  int(50)
  [8]=>
  int(55)
  [9]=>
  int(60)
  [10]=>
  int(80)
  [11]=>
  int(100)
}