php 冒泡排序_PHP教程

WBOY
Freigeben: 2016-07-13 10:31:32
Original
828 Leute haben es durchsucht

接触php这么久了,也就用过三种排序,冒泡排序,快速排序,木桶排序,今天就来学习一下冒泡排序:

那么什么是冒泡排序,就像河里的气泡一样,一个一个的气泡浮出水面,而这里是一个一个的数字,他的原理是重复的走访(遍历)要排序的数列,比较相邻的两个数,把大的数移到右边,接着遍历,直到所有数完成从小到大的顺序。每次比较出来当前最大的,下轮比较余下的数,用两个循环去做,外层循环控制轮数,内层循环控制比较的元素:

上代码

/**
 * 冒泡排序
 */
$list = Array(6,8,7,2,3,4,1);
echo "排序前";
print_r($list);
function mao($arr){
	for($i=1,$len=count($arr);$i<$len;++$i){ // 外层循环 数组个数-1
		for($k=0,$klen=$len-$i;$k<$klen;++$k){ // 内层循环,比较两个数组元素
			if($arr[$k]>$arr[$k+1]){
				$temp = $arr[$k];
				$arr[$k] = $arr[$k+1];
				$arr[$k+1] = $temp;
			}
		}
	}
	return $arr;
}
echo "<br/>排序后";
print_r(mao($list));
Nach dem Login kopieren

  在做冒泡的过程中,思路一直在别人的思想中,在百度的过程中,看到另一种方法,觉得不错也写过来了:

$list = Array(6,8,7,2,3,4,1);
echo "排序前";
print_r($list);
function mao($arr){
	for($i=0,$len=count($arr)-1;$i<$len;++$i){ // 外层循环 进行第一层遍历
		// 内层循环,在外层的基础上加一,来控制两个元素的比较
		for($k=$i+1;$k<=$len;++$k){ 
			if($arr[$i]>$arr[$k]){
				$temp = $arr[$i];
				$arr[$i] = $arr[$k];
				$arr[$k] = $temp;
			}
		}
	}
	return $arr;
}
echo "<br/>排序后";
print_r(mao($list));
Nach dem Login kopieren

  

在写的过程中,我很佩服后一种的写法,他的思维很灵活,因为第一种写法是按我们的正常人思维在做,很直白,感觉到思维很有意思,

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/762283.htmlTechArticle接触php这么久了,也就用过三种排序,冒泡排序,快速排序,木桶排序,今天就来学习一下冒泡排序: 那么什么是冒泡排序,就像河里的气...
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage