c语言小问题还是不懂

来源:百度知道 编辑:UC知道 时间:2024/05/16 09:27:48
46,79,56,38,40,84 冒泡排序升序排出第一趟结果为?
我是从46 ,79开始比呢,还是从84,40开始比?两种结果不同啊?

冒泡不管是生序还是降序都是从左到右`我相信你没有见过从下标最大的数直排到第0个数直的把`如果是1个动态数组`你去找最尾端的数?尾是会不段增长的!!!

两边都可以,虽然第一次的结果不同,但最终的结果是相同的.

从前开始比较,就是46<79,不变,继续比较79>56,交换这两个,在比较79>38交换,继续下去。。。
就是依次比较相邻的两个,1和2 2和3 3和4 。。 直到把最大的交换到最后

如果是从大到小排
从左到右的话,就是小的就换,大的不换
换一次就是
79,56,46,40,84,38
从右到左的话,就是大的换,小的不换
换一次就是
84,46,79,38,40
换一次是不一样,到底都一样

冒泡排序的基本概念是:依次比较相邻的两个数,将大数放在前面,小数放在后面。即首先比较第1个和第2个数,将大数放前,小数放后。然后比较第2个数和第3个数,将大数放前,小数放后,如此继续,直至比较最后两个数,将大数放前,小数放后,此时第一趟结束,在最后的数必是所有数中的最小数。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将大数放前,小数放后,一直比较到最小数前的一对相邻数,将大数放前,小数放后,第二趟结束,在倒数第二个数中得到一个新的最小数。如此下去,直至最终完成排序。

从46,79啊!!!
第一次 46 56 38 40 79 84
第二次 46 38 40 56 79 84
第三次 38 40 46 56 79 84