首页 > 代码学习

PHP冒泡排序算法

发布时间:2013-04-15 23:07:24 来源:星知苑 作者:星之宇

冒泡排序算法是一个经典的常用排序算法,当然还有一些其他的常用排序算,比如选择排序,插入排序,希尔排序,快速排序。所以也是一种必学的算法,甚至很多公司面试的题目中也有冒泡排序的。

但是冒泡排序毕竟是一种效率低下的排序方法,在数据规模很小时,可以采用。数据规模比较大时,最好用其它排序方法。

 

冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面,直到达到升序排列。

比如:这个数组array(4,3,5,1,2)用冒泡排序算法进行升序排列。

第1个循环循环开始,当前排序4,3,5,1,2[break]

第1趟:比较第1个和第2个数,比较4和3,排列后:3,4,5,1,2

第2趟:比较第2个和第3个数,比较4和5,排列后:3,4,5,1,2

第3趟:比较第3个和第4个数,比较5和1,排列后:3,4,1,5,2

第4趟:比较第4个和第5个数,比较5和2,排列后:3,4,1,2,5

至此第1个循环结束;由于最后一个数字5是最大的,所以只要排序前4位。

第2个循环循环开始,当前排序3,4,1,2

 

第1趟:比较第1个和第2个数,比较3和4,排列后:3,4,1,2

第2趟:比较第2个和第3个数,比较4和1,排列后:3,1,4,2

第3趟:比较第3个和第4个数,比较4和2,排列后:3,1,2,4

至此第2个循环结束;由于最后一个数字4是最大的,所以只要排序前3位。

第3个循环循环开始,当前排序3,1,2,

 

第1趟:比较第1个和第2个数,比较3和4,排列后:1,3,2

第2趟:比较第2个和第3个数,比较4和1,排列后:1,2,3

至此第3个循环结束;由于最后一个数字3是最大的,所以只要排序前2位。

 

 

第4个循环循环开始,当前排序:1,2

第1趟:比较第1个和第2个数,比较3和4,排列后:1,2

至此第4个循环结束;到此排序已经全部升序。

 

由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。

以下就是PHP中的冒泡排序中的一种:

 

<?php
$a = array(4,3,5,1,2); //这里随便创建一个一维数组;
$n = count($a);     //算出数组的元素总个数;
for($i=0;$i<$n-1;$i++){//需要进行的循环次数
for ($j=0;$j<$n-1-$i;$j++){//每次循环的比较次数
if($a[$j]>$a[$j+1]){ //比较数的大小,数小提前,数大排后
$tmp=$a[$j+1]; 
$a[$j+1]=$a[$j]; 
$a[$j]=$tmp;
}
}
}
print_r($a); //输出排列好的数组
?>

 

相关合集

  • 好玩的三国手游排行榜
好玩的三国手游排行榜

简介:三国都是大家众所周知,家喻户晓的一个真实的历史故事,也经过了多种不同的版本或者是平台的进行制作,有相关的游戏还有电影等等,那么在手机上想要玩比较好玩的三国游戏,也是有着很多的类型有策略的也有和角色扮演相结合的,更是有着桌游纸牌类的游戏,小编也是整合了很多的类型在这里,喜欢这样题材的可以来寻找,免费下载。