c语言冒泡排序详解

c语言冒泡排序详解冒泡排序是什么?先看看书上的定义说真的,这本书对新手来说一点都不友好,新手只要看第一句话就行,继续看下去他除了迷惑你之外一点用处都没有,生怕你学会一样。没错,这段代码没有注释,要是注释有用的话还要人讲干嘛?并且也不用函数调用什么的,只是讲冒泡的一个思维。首先头文件会写吧?主函数会写吧?数组会定义并且会写9到0吧?这个程序的目的是从小到大排序知道吧?先从两个for循环开始讲(两个for的时候内层的for先执行完,外层的for才会加+1,怕有些人不知道)第一个for定.

大家好,欢迎来到IT知识分享网。

冒泡排序是什么?先看看书上的定义

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5om-5LmQ6Laj6ICM5bey,size_20,color_FFFFFF,t_70,g_se,x_16

如果是新手,一开始看是很懵的,下面看代码和解释。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5om-5LmQ6Laj6ICM5bey,size_20,color_FFFFFF,t_70,g_se,x_16

 

没错,这段代码没有注释,要是注释有用的话还要人讲干嘛?并且也不用函数调用什么的,只是讲冒泡的一个思维。

首先头文件会写吧?主函数会写吧?数组会定义并且会写9到0吧?

这个程序的目的是从小到大排序知道吧?

先从两个for循环开始讲(两个for的时候内层的for先执行完,外层的for才会加+1,怕有些人不知道)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5om-5LmQ6Laj6ICM5bey,size_20,color_FFFFFF,t_70,g_se,x_16

 第一个for定义了一个i用来控制循环的趟数,一共是9趟。说人话就是:一共是10个数,你要从小到大排序,那就把最小的数一个个扔在前面,扔9次不就能排好10个数了?

第二个for定义了一个j,j=9表示从最后一个数开始,因为数组的下标是从0开始的,所以9就表示第10个数了,而我们这个代码的比较也是从后面开始的。那么j为什么要大于i?因为内层for每次循环完(这里的循环完表示跳出内层循环,外层循环+1)不就把一个最小的数放在前面了吗?对于排好的数那就没必要每次再比较一次吧?所以就随着i每次的增加,比较的数就相应的减少

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5om-5LmQ6Laj6ICM5bey,size_20,color_FFFFFF,t_70,g_se,x_16

 接下来就到了if判断,这里判断的是后一个数是否比前一个数小,如果小的话就交换,因为是从小到大排序。交换的话应该都会吧?其实顺序无所谓,只要最后完成交换就行了,定义一个变量用来存放数组的元素,然后其中一个数组赋值给另外一个数组,再把变量赋值给没有赋值过的数组。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5om-5LmQ6Laj6ICM5bey,size_18,color_FFFFFF,t_70,g_se,x_16

 最后再把排序好的打印出来就行。

总结一下吧,冒泡排序,也就是每次比较相邻两个数的大小,你可以根据自己是从大到小排序还是从小到大排序来判断,当然也可以从头开始比较,也可以从后面开始来比较,看个人,再玩得花点的也可以用函数传参,我这里只是讲冒泡的一个思路。

 

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/15600.html

(0)
上一篇 2024-02-15 17:45
下一篇 2024-02-16 15:15

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信