选择排序(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. 选择排序一共有 数组大小-1 轮排序
  2. 每一轮排序,又是一个循环
  3. 先假定当前这个数是最小数
  4. 然后和后面的每个数进行比较,如果发现有比当前数更小的数,就重新确定最小数,并得到下标
  5. 当遍历到数组的最后时,就得到本轮最小数和下标
  6. 交换

代码示例

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)相关推荐

  1. C语言基础排序算法-选择排序

    C语言基础排序算法-选择排序 什么是选择排序? 选择排序(Selection sort)是一种简单直观的排序算法,第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从 ...

  2. C语言排序算法 选择排序 插入排序 快速排序 qsort实现快排 堆排序

    常见排序算法 选择排序 选择排序(Selection sort)是一种简单直观的排序算法. 它的工作原理如下. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素 ...

  3. Java排序算法——选择排序

    Java排序算法--选择排序(Selection sort) 传送门 冒泡排序 插入排序 简述 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找 ...

  4. python排序算法-选择排序

    python排序算法-选择排序 一.选择排序 1.一趟排序纪录最小的数,放在第一个位置 2.再一次排序记录列表无序区最小的数,放在第二个位置 关键 有序区.无序区.无序区最小数的位置 代码 def s ...

  5. 十大经典排序算法-选择排序算法详解

    十大经典排序算法 十大经典排序算法-冒泡排序算法详解 十大经典排序算法-选择排序算法详解 十大经典排序算法-插入排序算法详解 十大经典排序算法-希尔排序算法详解 十大经典排序算法-快速排序算法详解 十 ...

  6. 排序算法-选择排序-堆排序

    排序算法-选择排序-堆排序 堆排序是一种树型选择排序方法.在排序过程中,将 L [ 1... n ] L[1 ... n] L[1...n]看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲结点 ...

  7. 排序算法---选择排序(java版)

    简单选择排序 原理 选择排序(Selection Sort)的原理有点类似插入排序,也分已排序区间和未排序区间.但是选择排序每次会从排序区间中找到最小的元素,将其放到已排序区间的末尾. 简单选择排序执 ...

  8. 排序算法--选择排序(Java实现)

    选择排序概念 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中 ...

  9. python排序算法---选择排序

    1.选择排序法定义 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻 ...

最新文章

  1. 服务级后门自己做——创建服务
  2. Android Studio开发概要记录
  3. 架构师的能力模型(图)
  4. 虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本。 模块“Upgrade”启动失败。 未能启动虚拟机(修改.vmx文件virtualHW.version = “xx“字段)
  5. for循环延时_RocketMQ进阶-延时消息
  6. 字符串的unicode java_Java把字符串转Unicode
  7. win7下IDEA黑色主题看不到鼠标指针的修改方式
  8. mysql 整型最大值_在SQL中如何获取整数的最大值?
  9. 核心单词Word List 38
  10. 图样图森破:认识WiFi以后
  11. Web编程入门暨个人网站计划:Web前端开发入门
  12. 深信服售前产品经理面试准备材料(更新ing)
  13. 让我们一起来了解下代码复用法则
  14. python从事软件测试_软件测试自学到什么程度可以开始找工作
  15. Windows虚拟内存
  16. knockout js之select
  17. 安装 Dashboard
  18. (华师)2021春季课程作业1
  19. confluence 制作流程图_软件需求分析流程图绘制方法
  20. 竣达技术 | 蓄电池内阻在线监测及告警方案

热门文章

  1. 在idea中如何创建jsp文件
  2. Flink:Sink、自定义Sink
  3. Windows 上可以安装 Apple Music 吗?
  4. FreeIPA环境搭建(一):服务端环境配置
  5. 编程练习【移除字符串中的尾随0】
  6. 【操作系统】实验楼实验2-操作系统的启动
  7. 树莓派配置自动连接wifi,ip自动发送到163邮箱
  8. 移动端app开发 - 01 - 开篇
  9. java聊天怎么信息一左一右_java 聊天消息首页面去重排序
  10. JAVA课程设计--图灵聊天机器人