文章目录

  • 1、基本介绍
  • 2、选择排序的思想
  • 3、选择排序思路分析图
  • 4、代码实现

1、基本介绍

选择排序属于内部排序算法,是从预排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的

2、选择排序的思想

选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从 arr[0] ~ arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1] ~ arr[n-1]中选取最小值,与arr[1]|交换,第三次从arr[2] ~ arr[n-1]中选取最小值,与arr[2]交换…第 i 次从arr[i-1] ~ arr[n-1]中选取最小值,与arr[i-1]交换… 第n-1次从arr[n-2] ~ arr[n- 1]中选取最小值,与arr[n-2]交换,总共通过n-1次,得到一个按排序码从小到大排列的有序序列。

3、选择排序思路分析图

4、代码实现

package com.yao.sort;import java.util.Arrays;/*** @Author: Yao* @Date: 2021/10/14 16:31* 选择排序*/
public class SelectSort {public static void main(String[] args) {//待排序的数组int [] arr = new int[]{101,-9,5,2};selectSort(arr);System.out.println(Arrays.toString(arr));}/*** 选择排序* @param array 待排序的数组*/public  static void selectSort(int [] array){for (int i = 0; i < array.length - 1; i++) {int index = i;int min = array[i];for (int j = i + 1; j < array.length; j++) {if (min > array[j]){index = j;min = array[j];}}if (index != i){array[index] = array[i];array[i] = min;}}}
}

排序算法-简单选择排序相关推荐

  1. java中的排序算法——简单选择排序,树形选择排序与堆排序(一)

    package com.sort; /**  * 选择排序:  * 简单选择排序,树形选择排序与堆排序  *   */ public class SelecSortDemo { /** * ----- ...

  2. 排序算法——简单选择排序(PythonJava)

    基本思想 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换:然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素( ...

  3. 排序算法 | 简单选择排序,算法的图解、实现、复杂度和稳定性分析

    今天讲解一下简单选择排序的原理以及实现.复杂度和稳定性分析 这个内容很简单,轻松加愉快,很快就过了~ 目录 简单选择排序 1 基本思想 2 动态图解 3 代码 4 复杂度分析 简单选择排序 1 基本思 ...

  4. 排序算法之选择排序(简单选择排序、堆排序)

    选择排序(简单选择排序.堆排序) 选择排序 简单选择排序 概念 算法实现 堆排序 概念 算法实现 后续 选择排序 选择排序的基本思想是:每一趟在待排序元素中选取关键字最小(或最大)的元素加入有序子序列 ...

  5. 堆排序算法c语言筛选法,【排序】排序算法之选择排序

    排序算法之选择排序 罗朝辉(http://www.cppblog.com/kesalin) 转载请注明出处 排序是数据处理中经常使用的一种重要运算,在计算机及其应用系统中,花费在排序上的时间在系统运行 ...

  6. 【排序算法】选择排序(Selection sort)

    选择排序(Selection sort)是一种简单直观的排序算法. 选择排序介绍 它的基本思想是: 首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置:接着,再从剩余未排序的元 ...

  7. 【排序算法】选择排序(C语言)

    [排序算法]-- 选择排序 目录 一.选择排序的原理 二.选择排序的代码实现 三.选择排序的优化 1. 优化思路 2. 排序优化后问题 3. 优化代码的实现 四.选择排序的效率 一.选择排序的原理 ​ ...

  8. 排序---初级排序算法(选择排序、插入排序和希尔排序)

    写在前面的话: 一枚自学Java和算法的工科妹子. 算法学习书目:算法(第四版) Robert Sedgewick 算法视频教程:Coursera  Algorithms Part1&2 本文 ...

  9. 函数模板案例_利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试

    案例描述: 利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试 #include <iostream& ...

最新文章

  1. 有关Linux下request.getRealPath(/)获取路径的问题
  2. kernelbasedll下载_kernel32.dll
  3. BZOJ4516: [Sdoi2016]生成魔咒
  4. 科研牛人是如何看文献的?
  5. UVA 11825 Hackers' Crackdown 状态DP
  6. CAN笔记(11) 位时序
  7. html5 js阻塞加载,js无阻塞加载和defer、async详解_白峰_前端开发者
  8. UVA1200 LA2972 POJ2295 ZOJ2492 A DP Problem【输入】
  9. springboot整合postgresql_SpringBoot应用和PostgreSQL数据库部署到Kubernetes上的一个例子-阿里云开发者社区...
  10. 校园网IPv6免流上网
  11. 2022年热传递与热物理国际研讨会(HTT 2022)
  12. 健身房菜鸟入门小常识
  13. xman的思维导图快捷键_macz技巧分享:思维导图XMind快捷键汇总
  14. ASP.NET 三层架构技术 人力资源管理系统项目HR (深入WebServic
  15. 黑马程序员_毕向东_JavaScript视频教程--学习笔记
  16. 云储存服务器系统内蒙古,内蒙古【存储服务器】怎么选_星际云储
  17. iOS 像素图转高清大图
  18. 那些年,我们画过的圣诞树
  19. android微信支付毁掉,android微信支付 需要注意的坑
  20. docker启动ssh、xrdp命令

热门文章

  1. 美国高中留学申请三种录取结果分析
  2. (网络速度)电信拉的100M光纤,测试峰值速度只有12M/s
  3. android nullable jar,java – 导入NotNull或Nullable,Android Studio将无法编译
  4. WebRTC音视频实时传输与服务质量
  5. 读 张光斗:给老百姓干活的工程师 有感
  6. python实现二维tensor对应列相同元素的个数
  7. 数据库:逻辑结构设计
  8. 洪山一小书城路分校 第17周 课程表
  9. 大学生所面临的网络安全问题有哪些?
  10. Linux下文件夹的自动同步