冒泡排序

 我来答
雀无了悦
2022-12-21 · TA获得超过1600个赞
知道大有可为答主
回答量:2.4万
采纳率:99%
帮助的人:317万
展开全部

冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。



冒泡排序:有两种,一种是小泡向上冒,一种是大泡向下沉。

首先,设待排序长为n,从后往前(从前向后)两两比较相邻元素的值,若为逆序, (a[i-1]>a[i]),则交换他们,直到序列比较结束。

交换过程中,会将较大的元素一直向后移动,故,会将最大的元素移动到最终的位置上,这样就称为一次冒泡过程。

为啥是n-1呢?因为排到最后,只剩两个数了,我们只需要比较一次,即可得到这两个数的有序序列。

9个数第一次需要比较8次,因为当只有两个数的时候,比较一次即可排出顺序。且每次比较都会少比较一次,因为每次比较都会使得一个数归位。所以一共比较8+7+6+5+4+3+2+1次。
冒泡排序是死的次数,最坏最好的情况冒泡排序都会进行相邻的比较。区别在于最好的情况每次比较不交换元素,最坏的情况每次都会交换相邻元素而已。

通过设计flag来减少冒泡的次数。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式