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

(升序)算法原理:

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

具体步骤:

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

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

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

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

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

 

 

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

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

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

posted @   压力小子の抗压日记  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
点击右上角即可分享
微信分享提示