选择排序法

1.工作原理(算法思路)

  1. 给定一个待排序数组,找到数组中最小的那个元素

  2. 如果最小元素不是待排序数组的第一个元素,则将其和第一个元素互换

  3. 在剩下的元素中,重复1、2过程,直到排序完成。

2.动图演示

3.C#代码实现

根据原理设计算法:

输出结果

4.性能分析

1)复杂度

2)选择排序法特点

  • 执行的比较和交换次数
    比较:N*(N-1)/2
    交换:N

  • 运行时间与输入无关
    在每一次的for循环结束后并不能为下一次的循环提供有效信息。这种性质在某些时候是一种缺陷。在数组大小相同时,当一个几乎已经有序的数组使用选择排序法花费的时间和无序数组所花费的时间是一致的。

  • 数据的移动量最少
    交换的次数和数组的大小呈线性关系,其他的排序算法对数据移动量都是线性对数级别或平方级别的。

本文转载自博客园:https://www.cnblogs.com/Lyd1563891920/p/13782257.html

微软MVP组建的.Net社区

你加入了吗?

微软MVP:Eleven组建

国内首屈一指的.Net活跃社区

完整配套的学习资料

最新最热的技术文章

社区内优质岗位直推

全部免费奉送给大家

优质内容持续更新中

戳以下文章立即获取

???

禁止外传!社区内部VIP干货资料自取

(课程视频+面试题+技术专刊+岗位内推)

选择排序算法流程图_C#实现——十大排序算法之选择排序相关推荐

  1. 我所知道的十大常用算法之克鲁斯尔算法(最小生成树)

    前言需求 今天我们学习的是克鲁斯尔算法,我们还是从一个场景里引入看看 有7个村庄(A, B, C, D, E, F, G) ,现在需要修路把7个村庄连通 1.各个村庄的距离用边线表示(权) ,比如 A ...

  2. 我所知道的十大常用算法之普里姆算法(最小生成树)

    前言需求 今天我们学习的是普里姆算法,我们还是从一个场景里引入看看 有7个村庄(A, B, C, D, E, F, G) ,现在需要修路把7个村庄连通 1.各个村庄的距离用边线表示(权) ,比如 A ...

  3. JS的十大经典算法排序

    更正(2018/5/31):如果看的是原文章的话,注意希尔排序少一个等号,在本博中,我已经添加上了,希尔排序(更正后)及以前的经测试都是正确的,后面的我正找时间持续研究验证中--(过程可能有点慢) 更 ...

  4. 算法设计与分析——十大经典排序算法一(1--5)

    目录 算法设计与分析--十大经典排序算法 第1关:冒泡排序 参考代码 第2关:选择排序 参考代码 第3关:插入排序 参考代码 第4关:希尔排序 参考代码 第5关:归并排序 参考代码 作者有言 一个不知 ...

  5. 算法设计与分析——十大经典排序算法二(6--10)

    一个不知名大学生,江湖人称菜狗 original author: jacky Li Email : 3435673055@qq.com  Time of completion:2023.3.1 Las ...

  6. 数据挖掘十大经典算法之——C4.5 算法

    数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...

  7. 十大编程算法助程序员走上大神路

    概述:编程算法,是完成程序逻辑的主要途径.本文推荐十大编程算法,有利于程序员的编程逻辑. 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n lo ...

  8. 「干货」编程语言十大经典算法,你知道几个?

    算法与数据结构是计算机学习路上的内功心法,也是学好编程语言的重要基础.今天给大家介绍一下十大经典算法. 十大经典算法分别是:冒泡排序,插入排序,选择排序,希尔排序,快速排序,归并排序,桶排序,堆排序, ...

  9. 十大经典算法总结(JavaScript描述)

    前言 读者自行尝试可以想看源码戳这,博主在github建了个库,欢迎star.读者可以Clone下来本地尝试.此博文配合源码体验更棒哦~~~ 个人博客:Damonare的个人博客 原文地址:十大经典算 ...

最新文章

  1. Chrome开发,debug的使用方法。
  2. Delphi的彩蛋 (好像Delphi5~Delphi7都可以)
  3. 两种底层数据层操作时的架构方式,你喜欢那种?
  4. 全球及中国多功能小推车行业消费需求与未来产销前景分析报告2022版
  5. NYOJ 711 最舒适的路线(并查集)
  6. 信息学奥赛一本通(C++)在线评测系统——基础(三)数据结构 —— 1363:小球(drop)
  7. android--------WebView 实现缓存网页数据
  8. 正则替换让一部分内容保持不变
  9. UE4学习-创建基于C++的场景
  10. sqlite 字符串 转 整型 cast 函数 (强制类型转换 )
  11. python 闭包中引用的变量值变更问题
  12. Jmeter系列之Fiddler导出Jmeter脚本
  13. shiro—登录拦截
  14. CIA:要破解最新iPhone/iOS我们也没辙
  15. native内存泄漏分析
  16. workbench动力学周炬_ANSYS WORKBENCH有限元分析实例详解(动力学)
  17. 有向图的拓补排序算法
  18. Unity 3D官方教程——2D Roguelike学习记录
  19. 中国近代史纲要 期末复习
  20. 数据结构系列之三红黑树

热门文章

  1. R语言回归模型协方差分析(Analysis of Covariance)
  2. pip国内常用源及配置方式
  3. java连接Hbase数据库
  4. MMD_2c_FrequentItemsets
  5. 重启随机游走算法(RWR:Random Walk with Restart)
  6. 更改Ubuntu gcc、g++默认编译器版本
  7. python笔记2(函数 面向对象 文件编程 上下文管理器)
  8. tf.keras.activations.relu 激活函数 示例
  9. flask token 登录验证
  10. python HDF5 h5py 的用法