Java选择排序

2023-11-15

1. 选择排序

选择排序是一种简单直观的排序算法,其基本原理是每一次从待排序的数组里找到最小值(最大值)的下标,然后将最小值(最大值)跟待排序数组的第一个进行交换,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。反复的进行这样的过程直到待排序的数组全部有序。

2.选择排序的动图

在这里插入图片描述
相信通过这个动图,您已经明白,选择排序是怎样的原理吧!接下来用Java来实现选择排序。

3.Java实现

代码如下:

public class selectSort {
    public static void main(String[] args) {
        int[] num ={29,10,14,37,14,2,8,1,7,6,5};
        for (int i = 0; i < num.length; i++) {
            //注意minIndex的取值
            int minIndex = i;
            //j=i;意味着i之前的数都是有序的
            for (int j = i; j < num.length; j++) {
                if (num[j]<num[minIndex]){
                    minIndex = j;
                }
            }
            //交换,每一次循环的i都是未排序数据的第一个
            int temp = num[i];
            num[i] = num[minIndex];
            num[minIndex] = temp;
        }
        System.out.println(Arrays.toString(num));
    }
}

运行的结果为:
在这里插入图片描述

4.参考资料

https://visualgo.net/en

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java选择排序 的相关文章

随机推荐

  • springboot 获取当前日期_Spring Boot获取时间

    运行环境新建测试类 package com wusiyao websockets service import org springframework stereotype Service import java text SimpleDa
  • 【Linux后端服务器开发】常用开发工具

    目录 一 apt yum 二 gcc g 三 make makefile 四 vi vim 五 gdb 一 apt yum apt 和 yum 都是在Linux环境下的软件包管理器 负责软件的查找 安装 更新与卸载 apt 是Ubuntu系
  • 小程序经典案例

    1 上拉触底事件 data colorList isloding false getColors this setData isloding true 需要展示 loading 效果 wx showLoading title 数据加载中 w
  • Java学习笔记 03

    相关文章 Java学习笔记 01 概论 Java学习笔记 02 快速之旅 Java环境配置及HelloWorld程序 引言 写这篇文章 主要是为了以后能快速复习Java的基础语法 同时 帮助有C 等语言基础的同学快速入门Java 目录 一
  • SmartFusion从FPGA到ARM系列教程

    前言 本系列教程 将会以Microsemi SmartFusion一代芯片A2F200M3F为例 简单介绍片上ARM Cortex M3 硬核 MCU 基本外设的使用 及其与FPGA逻辑模块进行交互的示例 在学习片上硬核ARM Cortex
  • 网上阅卷系统php源码,又开源了,网上阅卷系统自动识别功能代码

    想让自己轻松点就要让计算机多为你做点 前几天一个朋友找到我让我做一个网上阅卷系统 就是实现这么几个功能 高速扫描仪扫描试卷后得到一张一张的图片 软件的功能就是处理图片 计算成绩 再详细点就是自动识别考生涂的学号 自动识别考生的选择题答案并记
  • css设计引言,HTML5与CSS3设计模式 引言(3)

    引言 3 2 代码清单2 浮动下沉首字示例 HTML pclass hanging indent spanclass hanging dropcap H span anging Dropcap p CSS hanging indent pa
  • 2022-渗透测试-git提权(Linux)

    目录 1 什么是提权 2 git提权命令 3 git的使用 1 什么是提权 提权就是通过各种办法和漏洞 提高自己在服务器中的权限 以便控制全局 利用漏洞的最终目的是获取被测系统的最高权限 即Windows中管理员账户的权限 或Linux中r
  • C++自定义connect超时时间——非阻塞套接字法

    一 代码 include
  • 深圳大学数据库系统实验 Leasing Luxury Database system 基于PHP,MySQL,Web三件套

    本实验要求搭建一个手袋租聘的数据库系统 并实现以下要求 创建一个数据库 可以记录客户数据 手袋数据 租聘数据 设计者数据 用户可以提供自己的邮箱地址 邮寄地址 信用卡号码 来注册租聘网站 数据库要展示所有课租聘的手袋 已被租聘的手袋用户不能
  • java基础之Map集合

    Map集合 HashMap 数据结构 HashMap数据存放过程 HashMap 线程安全问题 多线程不安全案例 Collections synchronizedMap new HashMap 保证Map安全 HashTable 数据结构
  • 【论文译文】VQVAE2

    译文仅供参考 原文是pdf 想下载的话可以戳 http www gwylab com pdf vqvae2 chs pdf
  • python DVWAXSSPOC练习

    XSS反射性低难度 数据包 GET dv vulnerabilities xss r name 3Cscript 3Ealert 28 27xss 27 29 3C 2Fscript 3E HTTP 1 1 Host 10 9 75 161
  • 【C++入门】友元函数详解(定义、实现、优缺点)

    1 友元函数 友元类定义 1 在类中用friend关键字去声明函数 类 则这个函数 类就会变成友元函数 友元类 2 友元函数 友元类的声明位置没有要求 可以在private protected public权限区 效果都是一样的 3 友元函
  • Cocos Creator使用Vs Code与Chrome调试

    使用VS Code配合 Chrome与VS Code 插件 Debugger for Chrome 调试cocos creator项目的网页版时 出现访问失败的情况 这是因为通过 的操作生成出来的launch json 文件的默认端口为80
  • SSD(single shot multibox detector)算法及Caffe代码详解

    这篇博客主要介绍SSD算法 该算法是最近一年比较优秀的object detection算法 主要特点在于采用了特征融合 论文 SSD single shot multibox detector 论文链接 https arxiv org ab
  • 什么是乐观锁和悲观锁?

    乐观锁和悲观锁是并发控制的两种不同策略 用于在多线程环境下管理共享资源的访问 它们有不同的思想和实现方式 悲观锁 Pessimistic Locking 思想 悲观锁的思想是 它假定在并发访问中会发生冲突 因此在访问共享资源之前会先加锁 以
  • 在教学中常被问到的几个vue3.x与typescript的问题,统一解答

    在教学当中 学生在学习vue3 x时 常常会问到typescript和vue3 x之间的关系 感觉这两个技术总是绑在一起的 下面老赵来统一解答一下 那学vue3 x 为什么要求也要掌握typescript Vue 3 x是一个使用TypeS
  • python计算矩阵间的欧式距离

    背景 计算一个M D的二维矩阵与一个N D的二维矩阵各个行向量之间的距离 不用循环来做 如果计算两个一维向量P C的维数相同 则它们的欧氏距离为 化简之后为 我们继而推广 一个一维向量与一个二维矩阵各个行向量的欧氏距离为 再继续推广到一个二
  • Java选择排序

    1 选择排序 选择排序是一种简单直观的排序算法 其基本原理是每一次从待排序的数组里找到最小值 最大值 的下标 然后将最小值 最大值 跟待排序数组的第一个进行交换 然后再从剩余的未排序元素中寻找到最小 大 元素 然后放到已排序的序列的末尾 反