排序算法——选择排序法(Select Sorting)
选择排序(Select Sorting)
基本介绍
选择排序也属于内部排序法,是从预排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的
选择排序思想
选择排序(Select Sorting)也是一种简单的排序方法。它的基本思想是:第一次从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 次,得到一个从小到大排列的有序序列
规则
- 选择排序一共有 数组大小-1 轮排序
- 每一轮排序,又是一个循环
- 先假定当前这个数是最小数
- 然后和后面的每个数进行比较,如果发现有比当前数更小的数,就重新确定最小数,并得到下标
- 当遍历到数组的最后时,就得到本轮最小数和下标
- 交换
代码示例
package com.crisp.Sort;import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;public class SelectSort {public static void main(String[] args) {// int[] arr = {3,5,1,2,4,0,-1,9,8,7,0};
// print(arr);
// Select(arr);
// print(arr);//创建有100000个数据的数组int[] arr = new int[100000];for(int i = 0; i < arr.length; ++i){arr[i] = (int)(Math.random() * 100000);//生成一个[0,100000)的随机数}System.out.printf("原始数组为:");print(arr);Date data1 = new Date();SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String data1Str = simpleDateFormat.format(data1);Select(arr);Date data2 = new Date();String data2Str = simpleDateFormat.format(data2);print(arr);System.out.printf("排序过后数组为:");System.out.printf("排序前的时间是:%s\n",data1Str);System.out.printf("排序后的时间是:%s\n",data2Str);}//打印输出public static void print(int[] arr){System.out.println(Arrays.toString(arr));}//选择排序法 从小到大public static void Select(int[] arr){int minIndex;int temp;for(int i = 0; i < arr.length-1; ++i){minIndex = i;for(int j = i; j < arr.length-1; ++j){if(arr[minIndex] > arr[j+1]){minIndex = j+1;}}temp = arr[minIndex];arr[minIndex] = arr[i];arr[i] = temp;}}
}
排序算法——选择排序法(Select Sorting)相关推荐
- C语言基础排序算法-选择排序
C语言基础排序算法-选择排序 什么是选择排序? 选择排序(Selection sort)是一种简单直观的排序算法,第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从 ...
- C语言排序算法 选择排序 插入排序 快速排序 qsort实现快排 堆排序
常见排序算法 选择排序 选择排序(Selection sort)是一种简单直观的排序算法. 它的工作原理如下. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素 ...
- Java排序算法——选择排序
Java排序算法--选择排序(Selection sort) 传送门 冒泡排序 插入排序 简述 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找 ...
- python排序算法-选择排序
python排序算法-选择排序 一.选择排序 1.一趟排序纪录最小的数,放在第一个位置 2.再一次排序记录列表无序区最小的数,放在第二个位置 关键 有序区.无序区.无序区最小数的位置 代码 def s ...
- 十大经典排序算法-选择排序算法详解
十大经典排序算法 十大经典排序算法-冒泡排序算法详解 十大经典排序算法-选择排序算法详解 十大经典排序算法-插入排序算法详解 十大经典排序算法-希尔排序算法详解 十大经典排序算法-快速排序算法详解 十 ...
- 排序算法-选择排序-堆排序
排序算法-选择排序-堆排序 堆排序是一种树型选择排序方法.在排序过程中,将 L [ 1... n ] L[1 ... n] L[1...n]看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲结点 ...
- 排序算法---选择排序(java版)
简单选择排序 原理 选择排序(Selection Sort)的原理有点类似插入排序,也分已排序区间和未排序区间.但是选择排序每次会从排序区间中找到最小的元素,将其放到已排序区间的末尾. 简单选择排序执 ...
- 排序算法--选择排序(Java实现)
选择排序概念 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中 ...
- python排序算法---选择排序
1.选择排序法定义 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻 ...
最新文章
- 服务级后门自己做——创建服务
- Android Studio开发概要记录
- 架构师的能力模型(图)
- 虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本。 模块“Upgrade”启动失败。 未能启动虚拟机(修改.vmx文件virtualHW.version = “xx“字段)
- for循环延时_RocketMQ进阶-延时消息
- 字符串的unicode java_Java把字符串转Unicode
- win7下IDEA黑色主题看不到鼠标指针的修改方式
- mysql 整型最大值_在SQL中如何获取整数的最大值?
- 核心单词Word List 38
- 图样图森破:认识WiFi以后
- Web编程入门暨个人网站计划:Web前端开发入门
- 深信服售前产品经理面试准备材料(更新ing)
- 让我们一起来了解下代码复用法则
- python从事软件测试_软件测试自学到什么程度可以开始找工作
- Windows虚拟内存
- knockout js之select
- 安装 Dashboard
- (华师)2021春季课程作业1
- confluence 制作流程图_软件需求分析流程图绘制方法
- 竣达技术 | 蓄电池内阻在线监测及告警方案