编程语言
首页 > 编程语言> > 算法基础之冒泡排序(一)

算法基础之冒泡排序(一)

作者:互联网

算法基础之冒泡排序(一)
说起到冒泡排序,想必都不会陌生。这个名词在面试中会经常出现,当然了,这个也是我们算法基础的学习基石,等同于 Hello Word啦。
下面我们就了解一下冒泡排序,先认识一下冒泡排序的原理:

比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较;
–摘自百度

上面这段话的核心呢,就是两层比较;
那什么是两层比较呢?接着往下看

首先,我现在有一个无序的数组
在这里插入图片描述
现在我需要把这个数组 从无序变成有序,那么第一层比较就要来了

第一层比较首先要确定的是要比较几轮,这个是重点
1、每比较一轮我们都能确定一个最大或者最小的数值,第一轮比较完我们就能知道最大数值是多少,但是其他的数值不清楚
2、在下一轮的比较中,那些确定的数就不用参加比较了,第一轮已知最大的数不参加,从剩下的数值中取最大的,以此类推。
3、当倒数第二轮数值也被比较完后,最后一轮就不用比较了,也就剩下这一个数了;

总结:一个有N个数值的数组,我们需要比较N-1轮,剩下的最后一个就能自动确定了,每轮的比较都要拿到一个最大或最小的数值;

第二层比较:在每一轮比较中,要确定比较几次
打个比方,有3个数值,我们需要比较两次就能求出它的最大数,同样的, 有N个数值,需要比较N-1次

了解原理后,我们就可以开始着手代码块了

在这里插入图片描述
这样一个最基础的冒泡排序就完成啦;
下期见!!!

标签:最大,一轮,元素,基础,冒泡排序,算法,数值,比较
来源: https://blog.csdn.net/SKY_PLA/article/details/101110873