一、基本概念

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置(注:要把最大最小的元素和起始的元素交换),

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

二、算法特点

是否稳定:  false

平均时间复杂度:O(n^2)

最差时间复杂度:O(n^2)

最优时间复杂度:O(n^2)

package com.jiafuwei.java;

/**
* java 选择排序
* @author jfw
*
*/
public class SelectionSort {
public static void main(String[] args) {
int [] collections = {36,23,56,789,342,456,34,7,234,4578,32};
SelectionSort selectionSort = new SelectionSort();
selectionSort.sort(collections);
for (int i = 0; i < collections.length; i++) {
System.out.print(collections[i]+" ");
}
} public void sort(int [] data) {
for(int k=0;k<data.length;k++){
int min = k;
//先把这一圈循环中的第一个数和后面的数进行比较 如果大于后面的数 然后把后面数的下标值记录下来
//注意 这里i=k 是从k后面开始循环
for(int i=k;i<data.length;i++){
if(data[min]>data[i]){
min = i;
}
}
//把这一圈循环中的一个数记录下来
int temp = data[k];
//把这一圈循环中的一个数变成最小的数
data[k] = data[min];
//把以前最小数的位置 改变为当时的第一个数
data[min] = temp;
}
}
}

最新文章

  1. 来玩Play框架02 响应
  2. .NET Framework(.config)的配置文件架构
  3. BZOJ1026: [SCOI2009]windy数[数位DP]
  4. GDUFE-OJ 1203x的y次方的最后三位数 快速幂
  5. #include &lt;vector&gt;用法之我见
  6. 我在 CSDN 的小窝
  7. 使用redis避免客户端频繁提交数据
  8. MyEclipse------在特定目录创建文件和书写内容
  9. [转载]Jmeter那点事&#183;ForEach和If控制器
  10. cJSON学习笔记
  11. win7+64安装PLSQL Developer 32位
  12. hdu 1890 Robotic Sort(splay 区间反转+删点)
  13. 巧用 BootStrap --- 栅格系统(布局)轻松搞定网页响应式布局!
  14. Nginx学习——Nginx启动、停止、重启和信号控制以及平滑升级
  15. Github:修改Github仓库中项目语言类型
  16. 如何在FineUIMvc(ASP.NET MVC)中显示复杂的表格列数据(列表和对象)?
  17. JavaScript 正则表达式全面总结
  18. IdentityServer4 中文文档 -13- (快速入门)切换到混合流并添加 API 访问
  19. RxJava2-后台执行耗时操作,实时通知 UI 更新(一)
  20. Linux中用find命令查找当前文件夹下的.elf文件

热门文章

  1. js面向(基于)对象编程—类(原型对象)与对象
  2. 【转载】C#批量插入数据到Sqlserver中的三种方式
  3. 无法打开物理文件 XXX.mdf“,操作系统错误 5:”5(拒绝访问。)&quot;的解决办法
  4. ACM 最大化平均值问题总结
  5. 12 KLT算法
  6. DJango跨域中间键
  7. 《Cracking the Coding Interview》——第9章:递归和动态规划——题目8
  8. 【Kernal Support Vector Machine】林轩田机器学习技术
  9. jmeter察看结果树响应数据中文乱码解决办法
  10. [转]Shell dev-null详解