选择排序的核心思想是每轮从待排序部分找最小元素放至已排序末尾;java中用两层for循环实现,外层i从0到length-2,内层j从i+1遍历找最小值下标minindex,最后交换arr[i]与arr[minindex]。

选择排序的核心思想是:每一轮从待排序部分中找出最小(或最大)元素,放到已排序部分的末尾。用 Java 实现时,主要靠两层 for 循环 + 一个临时变量完成位置交换。
外层循环控制已排序区的边界
外层循环变量 i 表示当前轮次,也代表“已排序部分”的右边界。每轮结束后,索引 i 对应的位置就放好了该轮找到的最小值。
-
i从0开始,到arr.length - 2结束(最后一元素自动有序,无需再比) - 每轮开始时,假设
arr[i]是最小值,用变量minIndex = i记录其下标
内层循环找最小值的下标
内层循环在未排序区间 [i+1, arr.length-1] 中遍历,比较每个元素与当前最小值,更新 minIndex。
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
- 循环变量
j从i + 1开始,直到arr.length - 1 - 若
arr[j] ,就更新 <code>minIndex = j
每轮结束前交换元素
内层循环结束后,minIndex 就是本轮未排序区中最小元素的位置。只要它不等于 i,就用临时变量交换:
int temp = arr[i];arr[i] = arr[minIndex];arr[minIndex] = temp;
完整可运行代码示例
// 示例:对整型数组升序排序
public static void selectionSort(int[] arr) {
for (int i = 0; i <p>调用 <code>selectionSort(new int[]{64, 34, 25, 12, 22, 11, 90});</code> 后,数组变为 <code>{11, 12, 22, 25, 34, 64, 90}</code>。</p>Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










