数据结构和算法 – 1.基础排序算法
数组的大小会使算法的性能产生很大的差异。选择排序比冒泡排序快了 100 多倍,而且选择排序比插入排序快了 200 多倍。
当数组元素量增加到 10000 个的时候,确实能看出数组大小对三种排序算法的影响。
优先级:选择排序 > 冒泡排序 > 插入排序
1.冒泡排序
public static int[] MaoPao(int[] arr) { //执行多少次 for (int i = 0; i < arr.Length; i++) { //每执行1次,把最大的放在最后 for (int j = 0; j < arr.Length - 1; j++) { int a = arr[j]; int b = arr[j + 1]; if (a>b) { arr[j+1] = a; arr[j] = b; } } } return arr; }
方法2
public static int[] MaoPao2(int[] arr) { //执行多少次 for (int i = arr.Length - 1; i >= 1; i--) { //每执行1次,把最大的放在最后 for (int j = 0; j <= i - 1; j++) { int a = arr[j]; int b = arr[j + 1]; if (a > b) { arr[j + 1] = a; arr[j] = b; } } } return arr; }
2.选择排序
找最晓小的,放在前面,再找第2个小的,直到找完。
public static int[] XuanZhe(int[] arr) { int min, temp; //执行多少次 for (int i = 0; i < arr.Length; i++) { min = i; //最小值先取当前第1个 //j从第2个值开始取 for (int j = i + 1; j < arr.Length; j++) { if (arr[j] < arr[min]) { min = j; } } //先把最小值取出来了,再操作 temp = arr[i]; arr[i] = arr[min]; arr[min] = temp; } return arr; }
3.插入排序
后面一个和前面几个比较,是放前面,中间,还是后面。
//插入排序 public static int[] InsertSort(int[] arr) { int inner, temp; //执行多少次 for (int i = 0; i < arr.Length; i++) { temp = arr[i]; inner = i; while (inner > 0 && arr[inner - 1] >= temp) { arr[inner] = arr[inner - 1]; inner -= 1; } arr[inner] = temp; foreach (var item in arr) { Console.Write(item + " "); } Console.WriteLine(); } return arr; }
冒泡和选择排序耗时差不多,插入耗时要长1半。。
作者:【唐】三三
出处:https://www.cnblogs.com/tangge/p/5338734.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2011-03-30 [滤镜]的firefox兼容问题