基本思想

每趟从待排序的记录序列中选择关键字最小的记录放置到已排序表的最前位置,直到全部排完。

算法实现

package cn.caojiantao.tutorials.sort;/*** @author caojiantao*/
public class Select implements ISort {@Overridepublic void sort(int[] data) {for (int i = 0; i < data.length; i++) {int m = -1;for (int j = i; j < data.length; j++) if (m == -1 || data[j] < data[m]) m = j;ArrayUtils.swap(data, i, m);}}
}
复制代码

复杂度

  • 时间复杂度 O(n2)
  • 空间复杂度 O(1)

稳定性

稳定

转载于:https://juejin.im/post/5cbf4e045188250a7e37362f

经典排序 —— 选择排序相关推荐

  1. TZC 1283: 简单排序 —— 选择排序

    我们以TZC 1283为例简单说明一下排序(含十大经典排序算法)的python实现方法和C实现方法.比较排序过程中,按住某一个数和后面的所有数都比较一下,如果前者大于后者,则进行交换,比较排序过程中显 ...

  2. 【Java】5大排序算法总结(插入排序+希尔排序+选择排序+堆排序+冒泡排序)

    快速导航: 1. 稳定性 2 . 插入排序 3. 希尔排序 4. 选择排序 5. 堆排序 6 冒泡排序 1. 稳定性 两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法 ...

  3. c语言单链表的字母排序,链表排序——选择排序法(纯C语言版)

    /********************************* 链表的排序 *******************************************/ /* =========== ...

  4. 看动画学算法之:排序-选择排序

    文章目录 简介 选择排序的例子 选择排序的java代码实现 选择排序的第二种java实现 选择排序的时间复杂度 简介 选择排序就是从数组中选择出来最大或者最小的元素,然后将其和队首或者队尾的元素进行交 ...

  5. php冒泡和选择排序,选择排序vs冒泡排序

    冒泡排序: 稳定算法,发挥的也很稳定,最小时间复杂度n,最差复杂度为 n^2,使用两层循环实现,依次将数组里的每个元素,与其他元素比较,只要大于当前正在比的元素就交换两者 代码实现:function  ...

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

    选择排序 特点:原址排序,比较排序,时间复杂度O(n^2) // // Created by 许加权 on 2021/6/19. //#include <iostream>void sel ...

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

    选择排序: public void sort(){int out,in,min;for(out=0;out<nElements-1;out++){min = out;for(in=out+1;i ...

  8. 数据结构 排序 java_Java数据结构之排序---选择排序

    简单选择排序的介绍: 从给定的序列中,按照指定的规则选出某一个元素,再根据规定交换位置后达到有序的目的. 简单选择排序的基本思想: 假定我们的数组为int [] arr = new int[n],第一 ...

  9. java数组排序冒泡排序_java数组常见的排序——选择排序和冒泡排序

    将数组中的元素按照一定的顺序(从小到大,或从大到小)排列 1,以下用了常用的两种排序,选择排序和冒泡排序 package com.mydemo02; import java.util.Arrays; ...

  10. 1-算法 排序 选择排序

    选择排序 一个一个位置确定 每次找没找过的 最小值 交换 a[] size for(int i=0;i<size;i++) { tmp = i; for(int j=i+1;j<size; ...

最新文章

  1. 海思 core 电压动态调整
  2. iOS网络传输Delegate不被触发的本质原因
  3. python首行代码import *,from * import * 解析
  4. [vue]data数据属性及ref获取dom
  5. linux下无法umount移动设备
  6. 金陵科技学院计算机答辩,金陵科技学院优秀毕业论文答辩ppt模板
  7. vue.js 表单 v-text
  8. SLAM方向国内有哪些优秀的公司?
  9. ROS语音交互系统_(2)利用讯飞TTS实现ROS下语音合成播报
  10. 简单的转盘抽奖html,一个很简单的H5的转盘抽奖的(主要用的是css3的属性)
  11. vue 项目中高德地图 API 使用流程
  12. 【Unity3D开发小游戏】《青蛙过河》Unity开发教程
  13. qt 部署 错误_QT for Windows安装配置总结及采坑问题汇总
  14. ActiveMQ从入门到精通(全)
  15. PYNQ入门(2)——启动系统及例程查看
  16. csgo人机指令_CSGO指令:命令BOT前往指定位置
  17. Mac 终端提示You have not agreed to the Xcode license agreements
  18. java常用类库---对象克隆技术
  19. 2022-2028全球与中国化学机械抛光(CMP金刚石衬垫调节器市场现状及未来发展趋势
  20. 数据安全三要素:机密性、完整性、身份验证

热门文章

  1. jsoup Java HTML解析器
  2. jqueryui时间插件_满足您所有日历要求的jQueryUI Datepicker插件
  3. C# 窗体全透明,控件不透明
  4. 将微信小视频发送给QQ好友
  5. 未来人工智能的发展应该有哪些特征?
  6. TypeScript接口用法(基础)
  7. Swift 类与结构体
  8. 排序总结---常用的排序算法总结,java和js实现
  9. php curl上传文件$_FILES为空问题
  10. javascript获取元素样式值