首页  >  文章  >  每日编程  >  冒泡排序详细解析

冒泡排序详细解析

**熬夜选手
**熬夜选手原创
2020-05-01 15:42:30367浏览

冒泡排序

对于刚接触编程和算法的朋友来说,对于排序算法可能不太清晰,接下来我们一起来分析下冒泡排序。

冒泡排序的原理是什么了?

遍历一个数组,在此过程中,将相邻的两个单元的值进行比较:如果前面的比后面的大,则将两个值交换位置。这个过程到最后,数组中的最大值一定放在最后位置了。

如果将上述过程再进行一遍,则又可以确定剩余数据中的最大值放在倒数第二的位置。

然后将上述过程继续进行一遍,则可以继续确定剩余数据中的最大值放在倒数第三的位置。

依次类推。。。。。

图示:

原始数组
18 22 12
15 23 9
第一趟 18
22 12 15 9 23
第二趟 18 22 12 9 15 23
第三趟  18 22 9 12 15 23
第四趟 18 9 12 15 22 23
第五趟 9 12 15 18 22 23

代码演示:

$arr1 = array(18,22,12,15,23,9);
    $n = count($arr1);
    //控制要进行的躺数
    for($i = 0;$i < $n-1;$i++){
        //在每一趟里面,控制进行比较的次数
        for($k = 0;$k < $n-1-$i;$k++){
            if ($arr1[$k] > $arr1[$k+1]) {
                $temp = $arr1[$k];
                $arr1[$k] = $arr1[$k+1];
                $arr1[$k+1] = $temp;
            }
        }
    }

最后让我们来总结一下规律:

1.要进行从头到尾两两比较并进行交换位置的趟数为$n-1趟,$n是总个数(数组长度)

2.每次都对相邻的两个数据进行大小比较,如果需要,就交换他们的位置!

3.每趟要比较的次数都比前一趟少1次,第一趟要比较的次数为:$n-1

以上是冒泡排序详细解析的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn