选择排序(select sort)

1.基本描述

​ 其实也是差不多的思想,把数组分为一部分有序,一部分无序(未排序)。在未排序的数列中找到最大或者最小,然后放到未排序的首部(已排序尾部)。知道所有元素排序完毕。

​ 稳定性 不稳定 ,比如 5 6 2 5 ,第一次 5 ,2 交换,5 和6 的相对顺序就被破坏了 (感觉就这个要注意)

​ 时间复杂度
$$
O(N^2)
$$
​ 空间复杂度
$$
O(1)
$$

2.代码实现

public class selectSort {public static void selectSort(int[] array) {int min = 0;for (int i = 0; i < array.length-1; i++) {min = i;for (int j = i+1; j < array.length; j++) {if(array[j]<array[min])min=j;}int temp=array[min];array[min]=array[i];array[i]=temp;}}public static void main(String[] args) {int[] array = {12, 2, 1, 1, 3, 31, 4, 5, 6};selectSort(array);for (int i : array) {System.out.println(i);}}
}

转载于:https://www.cnblogs.com/EsMussSeinHui/p/11149405.html

# select sort 选择排序相关推荐

  1. C语言Selection Sort选择排序的算法(附完整源码)

    C语言Selection Sort选择排序的算法 C语言Selection Sort选择排序的算法完整源码(定义,实现) C语言Selection Sort选择排序的算法完整源码(定义,实现) #if ...

  2. c++Selection Sort选择排序的实现算法(附完整源码)

    C++Selection Sort选择排序的实现算法 C++Selection Sort选择排序的实现算法完整源码(定义,实现,main函数测试) C++Selection Sort选择排序的实现算法 ...

  3. 经典排序算法(一) —— Selection Sort 选择排序

    经典排序算法(一) -- Selection Sort 选择排序 文章目录 经典排序算法(一) -- Selection Sort 选择排序 简介 排序过程 实现 复杂度 简介 选择排序是一种简单直观 ...

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

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

  5. python 选择排序算法

    一.选择排序(selection sort) 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位 ...

  6. 简单排序——冒泡排序,选择排序,插入排序,对象排序

    2019独角兽企业重金招聘Python工程师标准>>> 1)冒泡排序 package sort; /**  * 冒泡排序,每次把数组最大值送到未排序部分的最末端  * @author ...

  7. 20180321选择排序-简单选择排序

    2019独角兽企业重金招聘Python工程师标准>>> 前置知识 selection sort 选择排序的基本思想:从待排序的序列中选出最大值(最小值),交换该元素与待排序序列头部元 ...

  8. 两个for做数据插入_冒泡排序、选择排序、插入排序

    排序算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序. 线性时间非比较类排序:不 ...

  9. 常用排序算法之选择排序

    package com.dalingjia.Interview.sort;/*** 选择排序:每趟都找最小的数放在前面* 首先在末排序列中找到最小的元素,存放到排序序列的起始位置,然后,* 再从剩余未 ...

最新文章

  1. 编辑神器VIM下安装zencoding
  2. 题目1201:二叉排序树
  3. 再谈 Application ProvidedAar
  4. 路由器 和 交换机 傻傻分不清楚
  5. SAP CRM One Order CLOSING date change debug
  6. figma下载_在Figma中进行原型制作的技巧和窍门
  7. linux中echo命令不输出换行,shell脚本echo输出不换行功能增强实例
  8. 导入其他spring模块配置
  9. 神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(Matplotlib绘图基础<1>python)
  10. Redis 面试题补充与汇总
  11. C#后台调用oracle存储过程,参数传入的是clob字段,怎样处理
  12. java遮罩层_页面遮罩层 - javaalex的个人空间 - OSCHINA - 中文开源技术交流社区
  13. IIS虚拟目录控制类
  14. 数据绑定(九)Binding的数据校验
  15. Python之路-Day2
  16. linux apache 停止命令,linux 下 apache启动、停止、重启命令
  17. ubb码转换的java类库 ubb2html_ubb代码转换为html
  18. 第九届蓝桥杯单片机省赛
  19. 如何剪切视频,只截取视频中间的一部分
  20. VUE图片裁剪组件,基于VueCropper

热门文章

  1. 通过实战跑分来展示HBase2.x的写入性能
  2. Spark性能调优之资源分配
  3. JavaFX SceneBuilder设置按钮的背景颜色
  4. 解决kubesphere node-exporter守护进程pod安装失败的问题
  5. sonarqube启动报错解决办法:Process exited with exit value [es]: 143
  6. Freemarker基于模板文件静态化代码示例
  7. python处理表格数据教程_用Python的pandas框架操作Excel文件中的数据教程
  8. 数据结构:栈、队列、数组、链表、红黑树结构的特点
  9. malloc和free的深层次分析
  10. 任务——μ/COS-II读书笔记