美文网首页
算法和数据结构2.2选择排序

算法和数据结构2.2选择排序

作者: 数字d | 来源:发表于2019-07-27 00:24 被阅读0次

选择排序就是重复“从序列中找到最小的值,将其与序列最左边的数字进行交换”这种操作算法。

在序列中寻找最小值使用的是线性查找。

对如下数字进行排序:

6,1,7,8,9,3,5,4,2

第一轮:

找到最小值1,和第一位的6交换位置

1,6,7,8,9,3,5,4,2

第二轮:

从剩下的数据中找到最小值和第二位数据位置交换
找到最小值2,和第二位的6交换位置

1,2,7,8,9,3,5,4,6

...

排序结束。

时间计算:

选择排序使用了线性查找来寻找最小值,因此在第一轮中需要比较n-1个数字,第二轮中需要比较n-2个数字....到n-1轮的时候需要比较1个数字。

因此,总的比较次数和冒泡排序相同,都是n2 / 2次。
每轮中交换数字的次数最多为1次。
如果输入的数据就是按照从小到大顺序排列的,便不需要进行任何交换。

选择排序的时间复杂度也和冒泡排序一样,都为O(n2).

相关文章

  • 常见排序算法

    1 前言 2 排序基础2.1 选择排序2.2 插入排序 3 高级排序算法3.1 归并排序3.1.1 插入排序与归并...

  • C语言:关于数据的几种排序算法

    数据结构的排序算法有很多种。其中,快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法;基数排序、冒泡排序、...

  • 算法和数据结构2.2选择排序

    选择排序就是重复“从序列中找到最小的值,将其与序列最左边的数字进行交换”这种操作算法。 在序列中寻找最小值使用的是...

  • 2 算法(6)

    算法 2.1 查找 2.2 排序

  • 算法与数据结构路线图

    学习算法与数据结构,深刻理解计算机科学 排序算法:插入、冒泡、选择、希尔、快速、归并、堆排序、计数排序、桶排序、基...

  • 排序算法-堆排序

    参考: Java排序算法(五):堆排序 【算法与数据结构】图说堆排序 【数据结构】排序算法:希尔、归并、快速、堆排...

  • Java数据结构和算法(九)——高级排序

    在Java数据结构和算法(三)——冒泡、选择、插入排序算法中我们介绍了三种简单的排序算法,它们的时间复杂度大O表示...

  • 10分钟看懂10大经典算法(Swift代码实现)

    排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进...

  • 排序算法

    排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序。 内部排序是数据记录在内存中...

  • Python实现十大经典排序算法

    排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进...

网友评论

      本文标题:算法和数据结构2.2选择排序

      本文链接:https://www.haomeiwen.com/subject/gkzjrctx.html