Algorithm_02--C#排序算法(升序)

(升序)算法原理:

通过重复比较和交换,使较大的元素逐渐“浮”到数组后面。

具体步骤:

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

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

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

4.重复步骤1~3,直到排序完成。

比较前后数值大小,然后通过temp来调换位置。

 

 

 问题:第一次冒泡替换次数5,第二次为4,第三次为3,第四次为2,第五次为1。为什么每一次次数都减少一次?

因为在每一次比较替换过程中,整个数组最大的数已经下沉到数组最尾端,所以每次不需要比较最下边的数。

 延申:时间复杂度:O(n2),空间复杂度:O(1),冒泡算法时间复杂度较高,效率不高,但是如果要求稳定性可以使用,它的稳定性是最高的。可以通过分而治之的思想,将大规模数据划分为小块,在小块内采用冒泡排序,然后合并排序的小块,实现整体有序。这可以在一定程度上提高效率。

posted @ 2023-05-26 09:27  压力小子の抗压日记  阅读(23)  评论(0编辑  收藏  举报