美文网首页
排序:二. 直接选择排序(选择剩下的元素里最大(小)放到最后(前

排序:二. 直接选择排序(选择剩下的元素里最大(小)放到最后(前

作者: DJN_ | 来源:发表于2018-12-13 08:54 被阅读0次

时间复杂度O(n2),最好情况O(n2),最坏情况O(n2),不稳定。
选择排序(Selection sort)是一种简单直观的排序算法。元素交换次数少,比较占多数。

工作原理如下

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置
然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾
以此类推,直到所有元素均排序完毕。

选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对 n个元素的表进行排序总共进行至多 n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。

示例

image.png

交换次数比冒泡排序较少,由于交换所需CPU时间比比较所需的CPU时间多,选择排序比冒泡排序快。


image.png

代码已上传 GitHub ,可以在 这里 找到

相关文章

  • 排序:二. 直接选择排序(选择剩下的元素里最大(小)放到最后(前

    时间复杂度O(n2),最好情况O(n2),最坏情况O(n2),不稳定。选择排序(Selection sort)是一...

  • 选择排序

    1. 什么是选择排序? 选择排序(Selection sort)的基本原理是:从列表中选出最大(小)的元素,放到列...

  • 冒泡排序和选择排序

    冒泡排序第一步把最大的元素放到末尾第二步把次大元素放到倒数第二位 选择排序第一步从未排序的数组中找到最小元素放到i...

  • 排序【2】— 选择排序

    选择排序实现原理:从待排序元素中选择最小(最大)的元素作为首元素,直到排序完成。

  • 选择排序

    直接选择排序 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最...

  • iOS 开发算法篇

    冒泡排序 比较相邻的元素。如果第一个比第二个大,就交换他们两个。最大的数会逐个被放到最后直到排序结束。 选择排序法...

  • 算法笔记01--排序#1

    说算法是一件很牛逼的事情。 排序 选择排序 选择排序是每次从剩下的元素中挑出最小的一个来,放到已经排序好的队列的尾...

  • 排序算法之选择排序

    选择排序的基本思想是每次从待排序的数据元素集合中选取最小或最大的数据元素放到数据元素集合的最前面或最后面,数据元素...

  • 选择排序

    选择排序 思路: 每一趟从待排序序列选择一个最小的元素放到已排好序序列的首位,剩下的位待排序序列,重复上述步骤直到...

  • 选择排序-c语言描述

    选择排序分简单选择排序与堆排序两种,先介绍简单选择排序。1.简单选择排序在未排序的序列中找到最小(大)元素,存放到...

网友评论

      本文标题:排序:二. 直接选择排序(选择剩下的元素里最大(小)放到最后(前

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