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

J019_选择排序

一、排序算法

排序过程和排序原理如下图所示:

二、代码实现

package com.itheima.sort;import java.util.Arrays;public class SelectSort {public static void main(String[] args) {int[] arr = {5, 4, 3, 1, 2};//选择排序for (int i = 0; i < arr.length - 1; i++) {for (int j = i + 1; j < arr.length; j++) {//假设i位置的数字是最小的,将i位置的数字依次与i以后的每个位置的数字做比较//如果i位置的数字大于后面的数字,则将两数的位置进行交换if (arr[i] > arr[j]) {int tmp = arr[i];arr[i] = arr[j];arr[j] = tmp;}}}System.out.println(Arrays.toString(arr));}
}

三、排序优化

由于在每轮比较的过程中,两两数字做对比,如果指定位置的最小数比与做对比的数字大,就要交换两数的位置,这样的话交换次数过多会影响系统的性能。

优化方案:在每轮中进行两数比较之前,都记录一个最小数的下标,在每轮比较完成后,将最小数的下标记到存最小数下标的变量中,然后再去判断是否需要做交换即可。

代码实现如下:

package com.itheima.sort;import java.util.Arrays;public class SelectSort1 {public static void main(String[] args) {int[] arr = {5, 4, 11, 32, 111, 1, 3, 2};for (int i = 0; i < arr.length - 1; i++) {int minIndex = i;for (int j = i + 1; j < arr.length; j++) {if (arr[minIndex] > arr[j]) {minIndex = j;}}if (arr[i] > arr[minIndex]) {int tmp = arr[i];arr[i] = arr[minIndex];arr[minIndex] = tmp;}}System.out.println(Arrays.toString(arr));}
}

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

相关文章:

  • 【linux】vim的使用
  • 【工具测评】ONLYOFFICE8.1版本桌面编辑器测评:好用!
  • 核方法总结(四)——高斯过程回归学习笔记
  • 【Python3的内置函数和使用方法】
  • 递推算法计算信号特征
  • spring-boot-configuration-processor注释处理器
  • Python和MATLAB粘性力接触力动态模型半隐式欧拉算法
  • webstorm无法识别tsconfig.json引用项目配置文件中的路径别名
  • qiankun微前端:qiankun+vite+vue3+ts(未完待续..)
  • 001:开源交易系统开发实战开篇
  • Pytorch实战(一):LeNet神经网络
  • RabbitMq的基础及springAmqp的使用
  • uniapp uniCloud云开发
  • 智能扫地机,让生活电器更加便民-NV040D扫地机语音方案
  • 【后端面试题】【中间件】【NoSQL】ElasticSearch索引机制和高性能的面试思路
  • 【漏洞复现】时空智友ERP updater.uploadStudioFile接口处存在任意文件上传
  • [leetcode hot 150]第五百三十题,二叉搜索树的最小绝对差
  • 【Docker】可视化平台Portainer
  • MySQL高级-MVCC-原理分析(RR级别)
  • 压力测试Monkey命令参数和报告分析
  • C# Benchmark
  • 算法金 | 协方差、方差、标准差、协方差矩阵
  • FastAPI教程II
  • Facebook的投流技巧有哪些?
  • Spring Boot 中的微服务监控与管理
  • 【计算机网络】期末复习(1)模拟卷
  • 【软件工程中的演化模型及其优缺点】
  • Oracle 数据库详解:概念、结构、使用场景与常用命令
  • FreeRTOS的裁剪与移植
  • 能求一个数字的字符数量的程序