选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。

选择排序分析

排序过程:

实现代码:

public class Selection
{public static void main(String[] args){int[] ins = {2,3,5,1,23,6,78,34};int[] ins2 = sort(ins);for(int in: ins2){System.out.println(in);}}public static int[] sort(int[] ins){int n = ins.length-1;//经过n-1次提取最小最大值for(int i=0; i<n; i++){//控制选择的次数int min_index = i;for(int j=i+1; j<n; j++){if(ins[j]<ins[i]){min_index = j;}}if(min_index != i){int temp = ins[i];ins[i] = ins[min_index];ins[min_index] = temp;}}return ins;}
}

java实现选择排序(思路与实现)相关推荐

  1. Java实现选择排序及其优化

    本文带来八大排序算法之选择排序 选择排序(Select Sorting)属于内部排序算法.是从待排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的. 基本思想: 第 1 次从 a ...

  2. java中选择排序和冒泡排序_Java选择排序就是比冒泡排序牛「具体详情,请看此文」...

    什么是选择排序 选择排序原理即是,遍历元素找到一个最小(或最大)的元素,把它放在第一个位置,然后再在剩余元素中找到最小(或最大)的元素,把它放在第二个位置,依次下去,完成排序. 时间复杂度 选择排序的 ...

  3. Java利用选择排序和冒泡排序实现对键盘录入的数据排序

    Java利用选择排序和冒泡排序实现对键盘录入的数据排序 选择排序 选择排序是遍历元素找到最大(最小)的元素,放到第一个位置然后到剩余的元素里找到第二大(小)的元素放到第二个,因此类推,就可以得到一个排 ...

  4. c语言数组项目按身高排序,过三关 Java冒泡排序选择排序插入排序小练习

    材料:猴子排序,按照身高来从小到大来排序. 第一关: 老猴子带领小猴子队伍按大小逐一比较,交换,开始高矮排列队伍.(冒泡排序) 第二关: 太慢了,给第一关增加难度,进行选择排序 第三关: 最后,尝试选 ...

  5. Java | 用Java实现选择排序算法(记录写程序全过程的编程哲学)

    最近听了马士兵老师的java算法课,感觉这不错,我很欣赏其中的编程哲学. 一.编程哲学 有简单到复杂 1.1 验证一步走一步 1.2 多打印中间结果 先局部后整体 先粗糙后精细 3.1 变量更名 3. ...

  6. 过三关 Java冒泡排序选择排序插入排序小练习

    材料:猴子排序,按照身高来从小到大来排序. 第一关: 老猴子带领小猴子队伍按大小逐一比较,交换,开始高矮排列队伍.(冒泡排序) 第二关: 太慢了,给第一关增加难度,进行选择排序 第三关: 最后,尝试选 ...

  7. 【十大经典排序算法】java实现--选择排序(2)

    选择排序概述 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置. 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾. 重复第二步,直到所有元素均排序完毕. 选择排序j ...

  8. java 之选择排序与冒号排序的详解

    选择排序: 核心思想:直接从待排数据中"选出"最小,或最大的数据,直接放在序列的前列位置,直到所有待排元素全部排列完毕 java代码的实现: public static void ...

  9. java实现选择排序 带打印,选择排序算法的JAVA实现

    选择排序算法的JAVA实现 package Utils.Sort; /** *利用选择排序法对数组排序,数组中元素必须实现了Comparable接口. */ public class ChooseSo ...

  10. 蛮力法在排序算法中的应用(JAVA)--选择排序、冒泡排序

    蛮力法在排序算法中的应用 对于一个排序问题,我们能想到的最简单的排序方法就是选择和冒泡 1.选择排序:时间复杂度O(n^2) public class Main {public static void ...

最新文章

  1. 手机版的python-python手机版
  2. Java多线程的同步机制:synchronized
  3. 使用gluoncv.model_zoo进行目标检测
  4. SAP Fiori OData取数据的同步模式和异步模式比较
  5. jenkins 用户授权
  6. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期上涨1.37%
  7. 多角度解读优酷土豆合并的深意
  8. JAVAWeb开发之Servlet-18.Servlet共享变量与变量的作用域
  9. Python_爬虫_urllib解析库
  10. git --amend 使用和撤销
  11. 加入收藏 设为首页代码收藏本页的代码和收藏本站的代码设为首页代码
  12. 微信小程序笔记——滚动计数器
  13. 计算机常用压缩软件有哪些,电脑用什么解压缩软件比较好?
  14. clustalw序列比对_Clustal的使用总结(Clustalx+Clustalw)
  15. mysql查看列名_MySQL:从查询中获取列名或别名
  16. 计算机技术作文500字初一,初一关于那一刻的作文500字(精选10篇)
  17. No module named ‘frontend‘
  18. 幂等 (idempotence) 的概念
  19. 团队作业第五周(六只化骨龙)
  20. Contract Verify and Publish

热门文章

  1. java开源工作流引擎
  2. Python实现电子词典(图形界面)
  3. 放大镜拾色器vue+typescript+canvas
  4. VS2003安装包和方法
  5. python神经网络图像分类,图像分类卷积神经网络
  6. 《计算机科学导论》学习笔记
  7. 网站的LOGO尺寸大小参考
  8. python基础(八):进制转换及python中的进制转换方法
  9. python dlib caffe人脸相似度_基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【二】人脸预处理...
  10. FMCW毫米波雷达中CFAR研究初探(附Python代码)