代码

/*排序新思想,选择排序*//*体现思想,操作数组就是操作下标*///小到大排序int nums [] = {2,5,9,1,3};int Min = 0;System.out.println(Arrays.toString(nums));for(int i=0;i<nums.length-1;i++){Min = i;//循环一次的出第i+1个最小值for(int j=i+1;j<nums.length;j++){if(nums[Min]>nums[j]){Min = j;}}if(Min!=i){//num记录大的值int num = 0;num =nums[i];nums[i]=nums[Min];nums[Min] = num;}}System.out.println(Arrays.toString(nums));

效果

思想(来自教学PPT)

1.定义数组

2.循环比较

2.1 下标为 i 的元素依次和之后的所有元素比较,找到本轮最小(大)的元素

3.交换元素

4.将最小元素与下标为i的元素交换

个人理解思想

1.设立一个int变量,每次都等于最外层循环的循环次数,也就是数组的下标,这里意思就是假设这个下标的数是这个数组以后最小(大)的数。

2.然后嵌套for循环,让他和后面一个数字对比,如果假设不成立,说明他不是这个下标和其后面数中最小的数,那么就把这次循环中找的最小的数的下标赋给min这个变量。

3.每次对比完一次,回到大循环的时候就判断一下min的值是否为本次循环次数,如果不是那说明现在min的下标才是剩余数组中最小的数字,那么就互相替换原则。

这就是这个程序的大概思想。

总结

比冒泡排序交换次数少 , 但比较次数不变 , 而且我个人不喜欢这种思想 , 这里只做理解

数组排序思想———选择排序相关推荐

  1. 数组排序的选择排序法(算法)

    这是一个数组排序的选择排序法的类SelectionSort,通过选择对换最小值打到排序目的. package algorithm; public class SelectionSort { publi ...

  2. 数组排序(选择排序和冒泡排序)

    1.-------寄语 对于初学JAVA的同学来说,排序是在陌生不过的一个基础题了.但是由于自己刚刚步入学习JAVA的世界,很多东西不能很好的理解,导致自己虽然可以敲出代码或者大致能够想明白, 但是对 ...

  3. c语言排序需要插空的最小次数,C语言数组排序——冒泡排序、选择排序、插入排序...

    一.冒泡排序 原理解析:(以从小到大排序为例)在一排数字中,将第一个与第二个比较大小,如果后面的数比前面的小,则交换他们的位置. 然后比较第二.第三个--直到比较第n-1个和第n个,此时,每一次比较都 ...

  4. 【算法知识】详解选择排序算法

    基本思想 选择排序的思想是:      给定一个数组arr,其长度为n;         第一次从 arr[0] 到 arr[n-1] 中选取一个最值(按照需求,可以是最大值,可以是最小值,下同)与a ...

  5. 图解排序算法之谈「选择排序」

    1. 基本思想 选择排序(Select Sort)同样是最基础的排序算法之一,它的核心思想是:将要排序的序列分成有序和无序两个部分,开始时有序部分为空,然后经过 n - 1 次遍历,每次遍历都在无序部 ...

  6. 数据结构与算法之选择排序

    数据结构与算法之选择排序 目录 基本介绍 选择排序思想 代码实现 1. 基本介绍 选择排序也属于内部排序法,是从排序的数据中,按指定的规则选出某一元素,再依次交换位置后达到排序的目的 2. 选择排序思 ...

  7. 算法一之简单选择排序

    一.  选择排序的思想 选择排序的基本思想是:每一趟在n-i+1(i=1,2,-n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录.基于此思想的算法主要有简单选择排序.树型选择排序和堆排序. ...

  8. 冒泡排序和选择排序区别_你以为只是简单的排序?(一)

    一直在犹豫要不要写排序的文章,因为真的烂大街了.可是一旦细看,还真是很多值的思考的地方,所以还是选择记录一下 以下完整代码,均可从这里获取 https://github.com/Rain-Life/d ...

  9. Java基础知识强化53:经典排序之选择排序(SelectionSort)

    1.选择排序的原理图: 2. 选择排序代码实现: 1 package cn.itcast_02; 2 3 /* 4 * 数组排序之选择排序: 5 * 从0索引开始,依次和后面元素比较,小的往前放,第一 ...

最新文章

  1. 干货|深度学习实现零件的缺陷检测
  2. R语言ggplot2可视化:通过水平半小提琴图和抖动数据点可视化雨云图(Rain Cloud plots)、自定义雨云图中数据点的颜色(数据点的颜色和半小提琴图一致)
  3. python类中的属性分为类属性和实例属性两种_python中类和实例如何绑定属性与方法示例详解...
  4. openvidu部署
  5. C#枚举类型和结构体
  6. VMware Workstation提示:另一个程序已锁定文件的一部分,进程无法访问,删除.lck文件夹和文件
  7. 【时间序列】使用微软Power BI进行时间序列预测
  8. GitHub 2W 星:一键生成前后端代码
  9. java 防止用户重复登录_JAVA 如何避免用户的重复登录
  10. Android平台使用Camera2(5.0+)替代过时的Camera
  11. 所有可能出栈序列总数
  12. 医药/医疗/互联网医疗服务平台/问诊/挂号/开药/处方/医生/医院/问诊订单管理/移动端问诊医疗系统/医生端处方开药系统/web端医药服务平台管理/axure原型/rp源文件/健康咨询/视频问诊/统计
  13. 异构广告混排在美团到店业务的探索与实践
  14. python连接hive--Pyhive
  15. 使用 PotPlayer 搭配 SVP 4 播放60帧电影
  16. 中国环氧树脂行业运营模式与营销创新策略分析报告2021-2027年版
  17. 2020杭电多校第三场部分题解(1004, 1005, 1006, 1009)
  18. 把个人网站封装生成百度小程序的方法分享
  19. 【MySQL】九、数据排序(升序 order by ... asc,降序 desc),sql语句的执行顺序
  20. 挖于计算机病毒正确的说法是,信息技术试题

热门文章

  1. 111 第一章操作系统概述总结思维导图+错题整理
  2. aspx mysql类_aspx中的mysql操作类sqldatasource使用示例分享
  3. 替代java参数_java – 使用Void作为可选参数的更好的替代方法
  4. python中def fun(a、b=200)_python中的函数的参数和可变参数
  5. C/Cpp / typeof、_typeof 和 _typeof_ 区别和联系
  6. Linux / offsetof 和 container_of
  7. C/S和B/S两种模式
  8. C语言标识符的链接属性
  9. sql server windows nt cpu占用高_痛惜!年仅33岁著名球员患癌去世!曾是高以翔扮演角色原型...
  10. MTK 修改后置Camera方向/镜像 Patch