每一趟从待排序的数据元素中选出最小(或最大的)一个元素,

顺序放在已排好的序的数列的最后,直到全部待排序的数据元素排完。

选择排序是不稳定的排序方法。

选择排序的时间复杂度为 O(n^2)。

第一次需要检查n个元素,但随后检查的元素数依次为n - 1, n – 2, …, 2和1。平均每次检查的元素数为1/2 * n, 因此运行时间为 n * 1/2 * n,简单地写作 O(n^2)。

例:

34,4,56,17,90,65

4,34,56,17,90,65  第一轮 5次

4,17,56,34,90,65  第二轮 4次

4,17,34,56,90,65  第三轮 3次

4,17,34,56,65,90  第四轮 2次

4,17,34,56,65,90  第五轮 1次

代码如下:

ppublic static void main(String[] args) {
int[] num = {34,4,56,17,90,65};
int minIndex = 0;//用于记录每次比较的最小值下标
//控制轮数
for(int i =0;i<num.length-1;i++) {
minIndex =i; //每轮假设一个最小值下标
for(int j =i+1;j<num.length;j++) {
if(num[minIndex]>num[j]) {
minIndex=j;
}
}
//判断需要交换的数下标是否为自己
if(minIndex!=i) {
num[minIndex]=num[minIndex]+num[i];
num[i]=num[minIndex]-num[i];
num[minIndex]=num[minIndex]-num[i];
}
}
//输出结果
for(int x:num)
System.out.println(x); }

最新文章

  1. 最新GHOST XP系统下载旗舰增强版 V2016年
  2. iOS国际化
  3. 批量改名工具 Bulk Rename Utility
  4. java 25 - 3 网络编程之 Socket套接字
  5. SQL Server里因丢失索引造成的死锁
  6. Ext.Net学习笔记24:在ASP.NET MVC中使用Ext.Net
  7. Nmap备忘单:从探索到漏洞利用(Part 5)
  8. 代码-Weka的NaiveBayes类
  9. C++如何入门
  10. javaScript 设计模式系列之四:组合模式
  11. FFT [TPLY]
  12. HttpServletRequest 接口、HttpServletResponse 接口、请求转发与重定向
  13. DBA_TABLES ALL_TABLES USER_TABLES
  14. 微信支付errcode:40163,code been used,错误小结
  15. Windows Service 2012 R2 下如何建立ftp服务器
  16. 201771010134杨其菊《面向对象程序设计java》第八周学习总结
  17. ORA-01031: insufficient privileges 错误解决
  18. JavaScript学习(六)
  19. win7 配置DNS
  20. bzoj5293: [Bjoi2018]求和

热门文章

  1. day05-装饰器作业
  2. java.lang.NoSuchMethodError: org.springframework.util.Assert.notNull(Ljava/lang/Object;Ljava/util/function/Supplier;)V
  3. 老版本loadrunner 打开侧边栏
  4. mysql中in和exist的区别
  5. jQuery包装
  6. Java IO: InputStreamReader和OutputStreamWriter
  7. highcharts 柱状图在柱子顶部显示y轴数据
  8. java内部类基础知识
  9. CAD安装未完成,某些产品无法安装的解决方法
  10. Mybatis-Plus的分页插件