选择排序算法分析与实现
1 | <br>选择排序 n + n- 1 + n- 2 + … + 2 + 1 = n * (n+ 1 ) / 2 = 0.5 * n ^ 2 + 0.5 * n,那么时间复杂度是O(N^ 2 ),这是雷打不动的时间复杂度 |
1 | <em id= "__mceDel" > 每一趟进行选择出最大值或最小值,然后进行交换首末位置,每趟减少一个<br> 时间复杂度无论什么时候都是o(n^ 2 ),因为它是数据规模为n,然后每趟选出最大值或最小值,进行n趟;<br> 空间算法度则为O( 1 ) 因为只用了两中间变量<br><br></em> |
package sort; /** * @author wyc * 选择排序 */ public class SelectionSort { public static void main(String[] args) { int[] arrays = {1,11,12,4,2,6,9,0,3,7,8,2}; selectionSorting(arrays); for(int value : arrays){ System.out.println(value); } } private static void selectionSorting(int[] a){ int max,index; for(int len = 0;len < a.length-1;len++){ max = a[len]; index = len; for(int i = len;i < a.length;i++){ if(a[i] > max){ max = a[i]; index = i; } } if(len != index){ a[len] = a[len] + a[index]; a[index] = a[len] - a[index]; a[len] = a[len] - a[index]; } } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?