当前位置:首页 > 叨叨念念 > PHP冒泡排序算法

PHP冒泡排序算法

叨叨念念 / 星之宇 / 2021-8-21 8:00 / 浏览:3283 / 评论:0

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

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


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

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

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

第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);//输出排列好的数组
?>

目前有 0 条评论

    • 昵称
    • 邮箱
    • 网址