思想

  • 找出最小值,与最左边的数字交换

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

实现

public class Test {public static void main(String[] args) {int[] arr = {2, 1, 3, 6, 0, 100};for (int i = 0; i < arr.length; i++) {int minIdex = i; //最小数索引for (int j = i; j < arr.length; j++) {//找到最小数,记录最小数的索引if (arr[j] < arr[minIdex]) {minIdex = j;}}//与最左边的数字交换int tmp = arr[i];arr[i] = arr[minIdex];arr[minIdex] = tmp;}System.out.println(Arrays.toString(arr));//[0, 1, 2, 3, 6, 100]}
}

时间复杂度

O(n^2)

计算方式

(n-1)+(n-2) +....+ 1 约等于 n^2/2

与冒泡排序对比

  • 时间复杂度是一样的~

参考

java 选择排序 - remainsu - 博客园
https://www.cnblogs.com/remainsu/p/java-xuan-ze-pai-xu.html

java 选择排序入门相关推荐

  1. java选择排序解释_选择排序

    号内回复数据结构,获取整套算法视频 本文作者:skywang12345 欢迎点击下方阅读原文 选择排序介绍 选择排序(Selection sort)是一种简单直观的排序算法. 它的基本思想是:首先在未 ...

  2. java选择排序不稳定_选择排序就这么简单 - Java3y的个人空间 - OSCHINA - 中文开源技术交流社区...

    选择排序就这么简单 从上一篇已经讲解了冒泡排序了,本章主要讲解的是选择排序,希望大家看完能够理解并手写出选择排序的代码,然后就通过面试了!如果我写得有错误的地方也请大家在评论下指出. 选择排序介绍和稳 ...

  3. java选择排序代码_Java排序算法总结之选择排序

    本文实例讲述了Java排序算法总结之选择排序.分享给大家供大家参考.具体分析如下: 选择排序的基本操作就是每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部 ...

  4. java选择排序(含选择排序代码)

    目录 一:选择排序的思想 ​二:选择排序的代码 三:结果 一:选择排序的思想 选择排序是一种简单直观的排序算法.它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始 ...

  5. java选择排序百度_java选择排序

    //选择排序 public class SelectionSort { public static void main(String[] args) { int[] arr={1,3,2,45,65, ...

  6. java选择排序算法实现

    //选择排序 public class SelectionSort {public static void main(String[] args) {int[] arr={1,3,2,45,65,33 ...

  7. c++ java 选择排序,选择排序(示例代码)

    简述 选择排序的基本思想是:每一趟从待排序列中选取关键字最小的元素,作为有序序列的一个新的元素,直到待排序列只剩下一个元素,则完成排序.主要算法有简单选择排序和堆排序. 简单选择排序 算法思想 假设序 ...

  8. Java:选择排序法

    代码 package com.bjpowernode.javase;public class SelectSort {public static void main(String[] args) {i ...

  9. Java经典排序算法:选择排序,动图演示排序过程

    Java经典排序算法:选择排序,动图演示排序过程 示意动图: public class Main {public static void main(String[] args) {new Main() ...

最新文章

  1. Web基础:记录简单个人网站建站过程
  2. 数据库-优化-数据库系统配置优化-操作系统优化
  3. gpxclear寄存器写0和写1_画图,搭积木,写对象 [TF 笔记 0]
  4. vscode中安装webpack_webpack项目配置流程
  5. 关于feign开启hystrix导致用户鉴权失败
  6. 配置spring事务管理的几种方式(声明式事务)
  7. Docker container 集装箱说明
  8. 求大佬解决0x00881340 处有未经处理的异常(在 ConsoleApplication1.exe 中): 0xC0000005: 写入位置 0x00993B8C 时发生访问冲突。
  9. 【转】win10安装caffe教程
  10. [渝粤教育] 重庆大学 房屋建筑学 参考 资料
  11. 华为防火墙ssl xxx配置
  12. 迅捷校园网自动登录脚本(网页端)
  13. 黑苹果原版安装从零开始---5驱动安装篇
  14. 腾讯QQ不为人知的使用技巧
  15. css flex布局问题width:auto
  16. 单字母密码密码分析(上)
  17. 李宏毅2020机器学习作业3-CNN:食物图片分类
  18. 用 django 构建翻译网站——软件工程课程设计
  19. Java毕设项目奥利给共享自习室系统(java+VUE+Mybatis+Maven+Mysql)
  20. 手动挡五个档位示意图_手动挡车档位介绍,手动挡挡位示意图

热门文章

  1. c调用python函数_python - Linux C调用Python 函数
  2. C语言在工业工程专业的应用,工业工程专业知识介绍
  3. android多个网络请求如何依次执行,Android 并发和串行网络请求
  4. php预编译mysql扩展_PHP-Mysqli扩展库的预编译
  5. 思科无线服务器,【CISCO wlan】思科无线网络_3-基本配置v2.pdf
  6. mysql中首字母大写的函数,如何借助MySQL函数将字符串的首字母大写?
  7. 红包随机分配问题php,自己写仿微信红包的随机分配,为什么平均数差距这么大?...
  8. python怎么读_锋哥告诉你Python怎么读
  9. lambda表达式 java求和_java 8 stream、lambda表达式对list操作分组、过滤、求和、最值、排序、去重...
  10. android 传输日期,Android 跟日期和时间有关的操作