选择排序(JAVA实现)
排序思想:
第一次从arr[0]到arr[n-1]中选取最小值,与arr[0]交换。第二次从arr[1]到arr[n-1]中选取最小值,与arr[1]交换…第i次从arr[i-1]到arr[n-1]中选取最小值,与arr[i-1]交换…第n-1次从arr[n-2]到arr[n-1]中选取最小值,与arr[i-2]交换。总共通过n-1次,得到一个按排序从小到大排列的有序序列。
排序规则:
1、选择排序一共有 数组的大小-1轮排序
2、每轮排序,又是一个循环,循环规则:
(1)先假定当前数是最小值
(2)然后和后面每个数进行比较,如果发现有比当前数更小的数,就重新确定最小的数,并且得到下标
(3)当遍历数组的最后时,就得到本轮最小数和下标
(4)进行交换
代码实现:
public class SelectedSort {public static void main(String[] args) {// TODO 自动生成的方法存根//定义一个测试的排序数组int[] arr= {3,9,-1,10,-2};int min=0; //存储最小值的下标int temp=0; //存储中间变量int j=0;for(int i=0;i<arr.length-1;i++) {min=i; //假设该下标为最小值的下标j=i;for(;j<arr.length;j++) {if(arr[min]>arr[j]) { //选取最小值,得到最小值得下标min=j;}}//进行交换temp=arr[i];arr[i]=arr[min];arr[min]=temp;System.out.printf("第%d次排序的结果是: \n",i+1);System.out.println(Arrays.toString(arr));}}}
测试结果:
第1次排序的结果是:
[-2, 9, -1, 10, 3]
第2次排序的结果是:
[-2, -1, 9, 10, 3]
第3次排序的结果是:
[-2, -1, 3, 10, 9]
第4次排序的结果是:
[-2, -1, 3, 9, 10]
选择排序(JAVA实现)相关推荐
- 选择排序--Java
选择排序:合适的元素放在合适的位置 1.每一次遍历的过程中,都假定第一个索引处的元素是最小值,和其他索引处的值依次进行比较,如果当前索引处的值大于其他某个索引处的值,则假定其他某个索引处的只为最小值, ...
- 选择排序java从小到大代码_java中选择排序与归并排序的内容,详细解析
上次我们已经为大家介绍过java中插入.分治和快速排序的内容,今天再来为大家介绍一下java中选择排序与归并排序的具体内容,并且通过实际的代码为大家解析. 首先我们需要了解的是,选择排序也是一种简单直 ...
- 选择排序java代码_JAVA简单选择排序算法原理及实现
简单选择排序:(选出最小值,放在第一位,然后第一位向后推移,如此循环)第一位与后面每一个逐个比较,每次都使最小的置顶,第一位向后推进(即刚选定的第一位是最小值,不再参与比较,比较次数减1) 复杂度: ...
- 使用Java代码实现选择排序Java
1.算法思想: 首先找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素,那么它就和自己交换.如果只剩下最后一个元素,就没必要排了,它就是最大的).再次在剩下的元 ...
- 【十大经典排序算法】java实现--选择排序(2)
选择排序概述 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置. 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾. 重复第二步,直到所有元素均排序完毕. 选择排序j ...
- java选择排序解释_选择排序
号内回复数据结构,获取整套算法视频 本文作者:skywang12345 欢迎点击下方阅读原文 选择排序介绍 选择排序(Selection sort)是一种简单直观的排序算法. 它的基本思想是:首先在未 ...
- 【排序算法】选择排序(Selection sort)
选择排序(Selection sort)是一种简单直观的排序算法. 选择排序介绍 它的基本思想是: 首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置:接着,再从剩余未排序的元 ...
- 排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序...
先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html 本文思路部分来源于上篇文章,但测得的结果似乎 ...
- 【Java常识】7.0 数组实现冒泡排序、选择排序和二分查找
1.0 冒泡排序原理 冒泡排序就是:轻的上浮,沉的下降.小的往前排,大的往后走. 原理:若一个N个元素的数组,两个相邻位置比较,如果前面的元素比后面的元素大就换位置. 每一次比较,都是相对最沉的到位. ...
- 选择排序算法(基于Java实现)
title: 选择排序算法(基于Java实现) tags: 选择算法 选择排序算法原理及代码实现: 一.选择排序算法的原理 选择排序算法的实现思路有点类似插入排序,也分已排序区间和未排序区间.但是选择 ...
最新文章
- iOS 自定义双向滑块Slider
- .Net转Java自学之路—基础巩固篇十八(正则)
- push的时候 出现卡顿现象
- c语言铁道,C语言程序设计(方少卿) 铁道C第8章(修订版).pdf
- 记录一次withRouter的实际应用场景
- 你还在使用fastjson,可以尝试jsoncode
- Ueditor结合七牛云及百度云存储(JAVA版,ueditor-1.4.3)实现图片文件上传
- iOS开发中经常用的实用代码合集
- java usb camera_Android usb camera设备添加
- 电动自行车出租管理系统VS开发sqlserver数据库web结构c#编程计算机网页
- V-layout 卡顿消除
- MTK最新工具(刷机,写号,升级等)合集含工具源码
- 本地计算机添加网络打印机共享,共享好的打印机,如何添加到本地来使用?-win7添加打印机...
- 关于mysql union 之后 排序乱掉
- 机器学习课堂笔记-作业二基本实现思路
- 题9.5:有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输人10个 学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓 名、3门课程成绩、平均分数)。
- Java的 网络编程
- matlab文献资料,matlab文献资料查找方法及资源汇总
- tor 安装及使用教程
- 工作流相关讲解 转载