|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在学习PHP这六个月里,每看到一个优秀的php脚本,就会兴奋的手舞足蹈,嘴里还不停的说:太酷了,太酷了。呵呵,很幼稚吧,但这可能就是兴趣。
根基概念:
冒泡排序(BubbleSort)的根基概念是:顺次对照相邻的两个数,将小数放在后面,大数放在前面。即在第一趟:起首对照第1个和第2个数,将小数放前,大数放后。然后对照第2个数和第3个数,将小数放前,大数放后,如斯持续,直至对照最初两个数,将小数放前,大数放后。至此第一趟停止,将最大的数放到了最初。在第二趟:仍从第一对数入手下手对照(由于能够因为第2个数和第3个数的互换,使得第1个数不再小于第2个数),将小数放前,大数放后,一向对照到倒数第二个数(倒数第一的地位上已是最大的),第二趟停止,在倒数第二的地位上失掉一个新的最大数(其其实全部数列中是第二大的数)。如斯下去,反复以上进程,直至终究完成排序。
因为在排序过程当中老是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。
用二重轮回完成,外轮回变量设为i,内轮回变量设为j。假设有10个数需求停止排序,则外轮回反复9次,内轮回顺次反复9,8,...,1次。每次停止对照的两个元素都是与内轮回j有关的,它们可以分离用a[j]和a[j+1]标识,i的值顺次为1,2,...,9,关于每个i,j的值顺次为1,2,...10-i。
<?php
/*
* point one: remember swap variable
* point two: remember inside loop size
*/
$arr = array(2,1,4,2,7); //init a array variable
$result = maoSort($arr); //invoke a function and get result
echo '<pre>'; //output format
print_r($result); //output result
echo '</pre>';
function maoSort($arr){ //function start
$size = count($arr)-1; //need to loop size is total length - 1
for ($i = 0; $i < $size; $i++) { //outside loop
for ($j = 0; $j < $size-$i; $j++) { //inside loop
if ($arr[$j] < $arr[$j+1]) { //compare big or small
$temp = $arr[$j]; //start swap
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $temp;
}
}
}
return $arr;
}
?> 本文链接http://www.cxybl.com/html/wlbc/Php/20130504/37470.html学校并没有那么多的时间可以让我们在实际开发上面。 |
|