JAVA讲解算法-排序算法-选择排序算法-02

一、定义

选择排序法是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。

二、算法示例讲解(Java)

java 复制代码
public static void selectSort(int[] array) {
    if (array == null || array.length < 2) {
        return;
    }
    // 外层循环控制遍历的轮数,每轮找出剩余未排序部分中的最小(或最大)元素
    for (int i = 0; i < array.length - 1; i++) {
        // 假设当前未排序部分的第一个元素为最小值
        int minIndex = i;
        // 内层循环在剩余未排序部分中寻找最小值的索引
        for (int j = i + 1; j < array.length; j++) {
            // 如果找到更小的元素,则更新minIndex
            if (array[j] < array[minIndex]) {
                minIndex = j;
            }
        }
        // 将找到的最小值与当前位置的元素交换
        if (minIndex != i) {
            int temp = array[i];
            array[i] = array[minIndex];
            array[minIndex] = temp;
        }
    }
}

第1轮

未排序部分:10, 9, 8, 7, 6, 5, 4, 3, 2, 1

第2轮

未排序部分:9, 8, 7, 6, 5, 4, 3, 2, 10

第3轮

未排序部分:8, 7, 6, 5, 4, 3, 9, 10

第4轮

未排序部分:7, 6, 5, 4, 8, 9, 10

第5轮

未排序部分:6, 5, 7, 8, 9, 10

第6轮

未排序部分:6, 7, 8, 9, 10

第7轮

未排序部分:7, 8, 9, 10

第8轮

未排序部分:8, 9, 10

第9轮

未排序部分:9, 10

相关推荐
咩咩啃树皮10 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
鱟鲥鳚11 小时前
Spring Boot 集成 LangChain4j:从模型调用到 Tool Calling(Demo版)
java·spring boot
大模型码小白12 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
腾渊信息科技公司13 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求
爱笑的源码基地14 小时前
高并发 Redis 缓存门诊HIS系统源码,含财务统计药房进销存
java·程序·门诊系统·诊所系统·云诊所源码
wuqingshun31415914 小时前
TCP超时重传机制是为了解决什么问题?
java
莫逸风16 小时前
【AgentScope 2.0】 0. 学习指南
java·llm·agent·agentscope
z1234567898617 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
yaoxin52112318 小时前
470. Java 反射 - Member 接口与 AccessFlag
java·开发语言·python
做个文艺程序员18 小时前
Linux第24篇:Java应用监控体系搭建:Prometheus+Grafana可视化运维
java·grafana·prometheus