专栏首页WebJ2EE算法:选择排序(SelectionSort)

算法:选择排序(SelectionSort)

1. 基本原理

每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。

2. 动画展示

3. 代码示例

4. 特性分析

  • 元素比较次数与序列的初始排序无关,都是 ~O(n^2);
  • 元素移动次数与初始排序有关:最少 0 次,最多 n 次;
  • 时间复杂度:~O(n^2);
  • 空间复杂度:~O(1);
  • 算法稳定性:不稳定;(例如:5 8 5 2 排序过程);

划个水 ~

我们下期再贱 ~

参考:

《算法入门》 《算法基础》

本文分享自微信公众号 - WebJ2EE(WebJ2EE),作者:WEBJ2EE

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 算法:插入排序(InsertSort)

    每步将一个待排序的记录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。

    WEBJ2EE
  • 算法:计数排序(CountingSort)、基数排序(RadixSort)

    计数排序是通过对待排序序列中的每种元素的个数进行计数,然后获得每个元素在排序后的位置的排序算法。即:对每一个输人元素 x,确定小于 x 的元素个数,然后就可以直...

    WEBJ2EE
  • 算法:拓扑排序(TopologicalSort)

    有向无环图(Directed Acyclic Graph, DAG)是有向图的一种。常常被用来表示事件之间的驱动依赖关系,管理任务之间的调度。拓扑排序是对DAG...

    WEBJ2EE
  • 7.6.2 内部排序算法的应用

    1)若n较小(N<=50),则可以采用直接插入排序或简单选择排序。由于直接插入排序所需的记录移动操作较简单选择排序多,因而当记录本身信息量较大时,用简单选择排序...

    week
  • 什么是基数排序?

    老读者可能比较熟悉,刚开始的时候写了一个排序算法系列,把常见的排序算法都写了,有兴趣的可以在公众号内的目录菜单栏中选择数据结构与算法查看。

    用户1260737
  • 八大排序算法的Python实现

    本文主要介绍了常见的8大排序算法基本概念以及其Python实现方式,如果你是Java程序员,也可以看看之前我们介绍的Java程序员必须掌握的8大排序算法。

    哲洛不闹
  • 排序算法(1)---基本概念

    排序与我们日常生活中息息相关,比如,我们要从电话簿中找到某个联系人首先会按照姓氏排序、买火车票会按照出发时间、买东西会按照销量排序、查找文件会按照最近修改时间排...

    逆月翎
  • 两分钟真能搞懂桶排序

    在数据结构与算法的排序中,我们很多人可能更多的熟悉冒泡排序、快速排序、归并排序。可能对堆排序、桶排序、计数排数等比较生疏,其实这个也没啥复杂的,算法的排序中,我...

    bigsai
  • 程序员内功:八大排序算法

    版权声明:本文为博主原创文章,未经博主允许不得转载。个人网站:http://cuijiahua.com。 ...

    Jack_Cui
  • 排序算法小结

    排序是工作和生活中非常常见的一个问题。现在已经有比较成熟的排序技术,被广泛地应用于各种程序语言或数据库中。不同的排序算法有不同的性能和适用场景,下面的视频对比了...

    用户1217611

扫码关注云+社区

领取腾讯云代金券