Algorithm_02--C#排序算法(升序)
(升序)算法原理:
通过重复比较和交换,使较大的元素逐渐“浮”到数组后面。
具体步骤:
1.比较相邻元素,如果第一个比第二大,就交换它们两个。
2.对每一对相邻元素作同样的工作,从开始第一到结尾的最后一对。这样再最后的元素应该会是最大数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.重复步骤1~3,直到排序完成。
比较前后数值大小,然后通过temp来调换位置。
问题:第一次冒泡替换次数5,第二次为4,第三次为3,第四次为2,第五次为1。为什么每一次次数都减少一次?
因为在每一次比较替换过程中,整个数组最大的数已经下沉到数组最尾端,所以每次不需要比较最下边的数。
延申:时间复杂度:O(n2),空间复杂度:O(1),冒泡算法时间复杂度较高,效率不高,但是如果要求稳定性可以使用,它的稳定性是最高的。可以通过分而治之的思想,将大规模数据划分为小块,在小块内采用冒泡排序,然后合并排序的小块,实现整体有序。这可以在一定程度上提高效率。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!