选择排序
1.选择排序简单介绍
第 一 次 从 arr[0] ~arr[n-1]中 选 取 最 小 值 , 与 arr[0] 交 换 ,
第 二 次 从arr[1] ~arr[n-1] 中 选 取 最 小 值 , 与 arr [ 1 ] 交 换 ,
第 三 次 从 arr[2] ~arr[n-l]中 选 取 最 小 值 , 与 arr [2]交 换 ,
第 i 次 从 arr [i-1 ] ~ arr [ n 一 1 ] 中 选 取 最 小 值 , 与 arr [ i 一 1 ] 交 换 ,
第 n-l 次 从 arr[n-2] ~ arr[n-I]中 选 取 最 小 值 , 与 arr[ n-2] 交 换 ,
总 共 通 过 n -1 次 , 得 到 一 个 按 排 序 码 从 小 到 大 排 列 的 有 序 序 列 。
2.选择排序思路图解
3.代码
public class SelectSort { public static void main(String[] args) { int[] arr = {34,1,119,101}; SelectSort.selectSort(arr); } /** * 选择排序 * 做算法要将一个复杂算法拆分成多个简单问题后逐一解决 * @param arr */ public static void selectSort(int[] arr) { int minData = 0; int minIndex = 0; //arr.length - 1:最后一个数不需要比较 for (int i = 0; i < arr.length - 1; i++) { minData = arr[i];//假设第一个注为最小数 minIndex = i;//最小数的索引 //int j = i + 1:假设的最小数arr[i]要跟它的下一个数去比较 for (int j = i + 1; j < arr.length; j++) { if (minData > arr[j]) { //重置最小数和其索引 minData = arr[j]; minIndex = j; } } //将最小值放在第i此的最小值位置 arr[minIndex]=arr[i]; arr[i] = minData; System.out.println(Arrays.toString(arr)); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix