本文作者:ptiyny

冒泡排序代码c语言 冒泡排序代码c语言由小到大

ptiyny 21分钟前 2
冒泡排序代码c语言 冒泡排序代码c语言由小到大摘要: 大家好,今天小编关注到一个比较有意思的话题,就是关于冒泡排序代码c语言的问题,于是小编就整理了2个相关介绍冒泡排序代码c语言的解答,让我们一起看看吧。C语言冒泡排序法详解?c语言冒...

大家好,今天小关注到一个比较有意思的话题,就是关于冒泡排序代码c语言的问题,于是小编就整了2个相关介绍冒泡排序代码c语的解答,让我们一起看看吧。

冒泡排序代码c语言 冒泡排序代码c语言由小到大
(图片来源网络,侵删)

C语言冒泡排序法详解?

第一讲:冒泡排序法基本原理

所谓冒泡排序法,就是对一组数字进行从大到小或者从小到大排序的一种算法。具体方法是,相邻数值两两交换。从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不同,则将两个数的位置进行交换(对调);如果其与我们的期望一,则不用交换。重复这样的过,一直到最后没有数值需要交换,则排序完。一般地,如果有N个数需要排序,则需要进行(N-1)趟起泡,我们以从小到大排序为例来看一下,具体情况如下图所示:

第二讲:C语言程序的实现

首先,为了实现效果,我们得先定义一组待排序的数列以及各个变量。具体情况如下图:

冒泡排序代码c语言 冒泡排序代码c语言由小到大
(图片来源网络,侵删)

2.算法的实现,具体情况如图:

3.运行结果显示。具体情况如图:

第三讲:在上一讲的基础上对程序算法进行优化

按照上面的程序,在第五趟(i=5)起泡时,计算机不仅要对“1,5,6,4”两两进行比较并排序,还要对“7,8,9,13”进行两两比较并排序,而“7,8,9,13”在第四趟起泡时就已经排序好了,所以再进行比较的话,就显得非常多余。图示如下:

冒泡排序代码c语言 冒泡排序代码c语言由小到大
(图片来源网络,侵删)

2.在上面程序的基础上进行优化。具体情况如图所示:

c语言冒泡排序方法默写?

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

以从小到大排序为例,第一轮比较后,所有数中最大的那个数就会浮到最右边;第二轮比较后,所有数中第二大的那个数就会浮到倒数第二个位置……就这样一轮一轮地比较,最后实现从小到大排序。

比如对下面这个序列进行从小到大排序:

90 21 132 -58 34

第一轮:
1) 90 和 21比,90>21,则它们互换位置:

21 90 132 -58 34

2) 90 和 132 比,90<132,则不用交换位置。
3)132 和 –58 比,132>–58,则它们互换位置:

21 90 -58 132 34

4)132 和 34 比,132>34,则它们互换位置:

21 90 -58 34 132

到此第一轮就比较完了。第一轮的结果是找到了序列中最大的那个数,并浮到了最右边。

比较时,每轮中第 n 次比较是新序列中第 n 个元素和第 n+1 个元素的比较(假如 n 从 1 开始)。

第二轮:
1) 21 和 90 比,21<90,则不用交换位置。
2) 90 和 –58 比,90>–58,则它们互换位置:

21 -58 90 34 132

1.比较相邻的元素。如果第一个比第二个大,就交换它们两个的位置。

2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这时最后的元素应该会是最大的数。

3.针对所有的元素重复以上的步骤,除了最后一个。

4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

5.从小到大排序完成。举个简单例子:对5,2,6,4排序第一步,5大于2,交换两者位置,变为:2,5,6,4第二步,5小于6,不换位。第三步,6大于4,交换两者位置,变为2,5,4,6此时最大的数6,已经排到了最后,我们只需对剩余的数字继续进行上述步骤:第四步,2小于5,不换位。第五步,5大于4,交换两者位置,变为:2,4,5,6.第六步,此时,第二大的数字5已经被排到了倒数第二位。我们对剩余的数字继续进行上述步骤。第七步,2大于4,不换位。发现此时没有任何一对数字需要比较,此时排序完成。

到此,以上就是小编对于冒泡排序代码c语言的问题就介绍到这了,希望介绍关于冒泡排序代码c语言的2点解答对大家有用。

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享