算法实现思想

选择排序一共排序了n-1轮。

for (int i = 0; i < arr.length - 1; i++) {}

定义变量min来记录每轮中需要比较序列中的最小数,变量minIndex记录每轮中最小数的下标.

int min = arr[i];
int minIndex = i;

第i轮,将第i个数赋给min,然后从下标为i+1的位置开始,遍历后续元素,让它们跟min比较。如果比min小,则将其值赋给min,并用minIndex记录其下标。如果比min大,则遍历下一个元素,直至找到最小数。

for(int j = i + 1; j < arr.length; j++) {  //每一轮的比较if(min > arr[j]){ //将min和遍历的元素比较,比min小则将其值赋给min,并记录最小数的下标minIndexmin = arr[j];minIndex = j;}
}

对无序序列{-4, 5, 7, 1, 3}采用简单选择排序算法进行排序,具体过程为:

简单选择排序算法 (JAVA)相关推荐

  1. 排序算法:简单选择排序算法实现及分析

    简单选择排序算法介绍 简单选择排序(Simple Selection Sort)就是通过n-1次关键字排序之间的比较,从n-i+1个记录中选择关键字最小的记录,并和第i(1<=i<=n)记 ...

  2. python选择排序算法图解_简单选择排序算法(C语言详解版)

    该算法的实现思想为:对于具有 n 个记录的无序表遍历 n-1 次,第 i 次从无序表中第 i 个记录开始,找出后序关键字中最小的记录,然后放置在第 i 的位置上. 例如对无序表{56,12,80,91 ...

  3. C语言实现选择排序——简单选择排序算法

    C语言实现简单选择排序 文章目录 C语言实现简单选择排序 简单选择排序算法 1.交换操作 2.简单选择排序算法实现 项目完整代码 运行效果图 简单选择排序算法 1.交换操作 //交换实现 void s ...

  4. JAVA简单选择排序算法原理及实现

    简单选择排序:(选出最小值,放在第一位,然后第一位向后推移,如此循环)第一位与后面每一个逐个比较,每次都使最小的置顶,第一位向后推进(即刚选定的第一位是最小值,不再参与比较,比较次数减1) 复杂度: ...

  5. 选择排序java代码_JAVA简单选择排序算法原理及实现

    简单选择排序:(选出最小值,放在第一位,然后第一位向后推移,如此循环)第一位与后面每一个逐个比较,每次都使最小的置顶,第一位向后推进(即刚选定的第一位是最小值,不再参与比较,比较次数减1) 复杂度: ...

  6. java 快速排序算法简单_排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序......

    先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html 本文思路部分来源于上篇文章,但测得的结果似乎 ...

  7. java 排序原理_简单选择排序算法原理及java实现(超详细)

    简单选择排序的原理 简单选择排序的原理非常简单,即在待排序的数列中寻找最大(或者最小)的一个数,与第 1 个元素进行交换,接着在剩余的待排序的数列中继续找最大(最小)的一个数,与第 2 个元素交换.以 ...

  8. C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】

    目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...

  9. 【排序算法】冒泡排序、简单选择排序、直接插入排序比较和分析

    [排序算法]冒泡排序.简单选择排序.直接插入排序比较和分析 写在前面: 本文简单介绍了冒泡排序.简单选择排序.直接插入排序,并对这三种排序进行比较,入参都是80000个随机数,比较算法耗时.进一步,我 ...

最新文章

  1. 设计模式之组合模式(Composite)摘录
  2. Prometheus 对比 Zabbix
  3. flutter 自定义tab导航-顶部导航-底部导航
  4. OpenCASCADE:函数机制的使用
  5. 0048-三角形的判断
  6. 将EnyimMemcached从.NET Core RC1升级至RC2
  7. python有道-如何用pythonquot;优雅的”调用有道翻译?
  8. Xcode10升级问题:Multiple commands produce Info.plist
  9. JS获取浏览器高度、屏幕高度、宽屏
  10. HBuilderX使用mac打包ios应用提示苹果根证书没有安装
  11. 用IO流读取trs文件
  12. Mysql:数据库无法启动,系统找不到指定文件
  13. 同城信息发布小程序开发制作
  14. 高效通过,PMI-ACP 备考知识突击(九阴真经版)
  15. 兵法三十六计第三计-借刀杀人。
  16. MATLAB 字符串数组
  17. MessageBox的几点用法
  18. C++条件运算符(三目运算符+逗号运算符)案例实练
  19. opencv学习日记——CV_8UC1 含义
  20. [转载]从WiMAX看自主创新

热门文章

  1. acer清理工具 clear下载_免流量工具聚合下载,包含全部工具
  2. 模板语法-插入文本//模板语法-插入标签//模板语法-双花括号//模板语法-向标签属性中插入数据
  3. 监控页面后退前进,浏览器文档加载事件之pageshow、pagehide
  4. 周记(2015-11-30 -- 2015-12-05)
  5. [软件工程学习笔记]浅谈敏捷开发
  6. lighttpd在proxy-core下path_info为空的修复
  7. 字节数组和字符串的相互转化……
  8. 五、Spring中的@Import注解
  9. ACR Code Pacs
  10. Python面试笔记二