当前位置: 首页 > news >正文

Java选择排序

选择排序是一种简单直观的排序算法,其基本思想是每一轮从待排序的元素中选择最小(或最大)的元素,将其与当前位置的元素交换。选择排序的实现步骤可以简要概括为:

  1. 初始化: 遍历整个数组,将当前位置的元素标记为最小(或最大)。
  2. 选择: 在未排序的部分中找到最小(或最大)的元素的索引。
  3. 交换: 将最小(或最大)的元素与当前位置的元素进行交换。
  4. 移动: 将标记的位置移动到下一个未排序的元素。
  5. 重复: 重复以上步骤,直到整个数组有序。

以下是使用Java实现选择排序的代码:

public class SelectionSort {public static void selectionSort(int[] arr) {int n = arr.length;for (int i = 0; i < n - 1; i++) {// 步骤 1:假设当前位置是最小元素的位置int minIndex = i;// 步骤 2:在未排序的部分中找到最小元素的索引for (int j = i + 1; j < n; j++) {if (arr[j] < arr[minIndex]) {minIndex = j;}}// 步骤 3:交换最小元素与当前位置的元素if (minIndex != i) {int temp = arr[minIndex];arr[minIndex] = arr[i];arr[i] = temp;}// 步骤 4:移动标记位置到下一个未排序的元素}}public static void main(String[] args) {// 示例数组int[] arr = {24, 20, 23, 22, 11};System.out.println("原始数组: " + Arrays.toString(arr));// 调用选择排序方法selectionSort(arr);System.out.println("排序后数组: " + Arrays.toString(arr));}
}

在这个例子的步骤3中添加了判断条件,避免不必要的交换,算是进行了小小的优化。

http://www.lryc.cn/news/280502.html

相关文章:

  • [足式机器人]Part3 机构运动学与动力学分析与建模 Ch00-1 坐标系与概念基准
  • 【金猿人物展】DataPipelineCEO陈诚:赋能数据应用,发挥未来生产力
  • 4D 毫米波雷达:智驾普及的新路径(二)
  • element plus自定义组件表单校验
  • C //练习 4-13 编写一个递归版本的reverse(s)函数,以将字符串s倒置。
  • DNS解析和主从复制
  • 光猫(无限路由器)插入可移动硬盘搭建简易版的NAS
  • SpringIOC之support模块GenericGroovyApplicationContext
  • Awesome 3D Gaussian Splatting Resources
  • 【镜像压缩】linux 上 SD/TF 卡镜像文件压缩到实际大小的简单方法(树莓派、nvidia jetson)
  • Zookeeper 和 naocs的区别
  • 2-6基础算法-快速幂/倍增/构造
  • 行业内参~移动广告行业大盘趋势-2023年12月
  • 【笔记】书生·浦语大模型实战营——第四课(XTuner 大模型单卡低成本微调实战)
  • 开源的Immich自建一个堪比 iCloud 的私有云相册和备份服务
  • SPI通信讲解
  • 本地一键部署grafana+prometheus
  • NIO核心依赖多路复用小记
  • 如何彻底卸载 Microsoft Edge?
  • JavaScript-对象-笔记
  • java 运算符 选择语句
  • CNN:Convolutional Neural Network(上)
  • 将Android应用修改为鸿蒙应用的工作
  • 03 Strategy策略
  • Python实现分位数回归模型(quantreg算法)项目实战
  • 【ROS2简单例程】基于python的发布订阅实现
  • 【期末考试】数据库综合复习宝典
  • OpenHarmony南向之LCD显示屏
  • 核心笔记-短篇
  • 系统学习Python——警告信息的控制模块warnings:为新版本的依赖关系更新代码