十大经典排序算法(动图演示)-2之选择排序

分类:科技频道 时间:2024-10-26 11:14:34 浏览:3
概述
选择排序是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最大(小)元素,存放到排序序列的起始位置,然后在从剩余的未排序的元素中据需寻找最大(小)元素,然后放到已排序的序列的末尾,一次类推,知道所有元素均排序完毕。
内容

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

2.1 算法描述

  1. 将序列中的第一个元素作为,
  2. 逐个比较其余元素,从队列中找出最小的元素 然后与第一个元素进行交换
  3. 一次循环之后会得到最小的值在最前面
  4. 忽略已经找到的元素,然后循环执行2、3步操作

2.2 动图演示

1.3 代码实现

  • 方案:正常原地算法

  • override func sortAction() {
    if arrayList.count <= 1 { return }
    let end = arrayList.count
    for i in 0..<end {
    var min = i
    for begin in i..<end-1 {
    if cmpIndex(min, begin+1) > 0 {
    min = begin+1
    }
    }
    swap(i, min)
    }
    }


原文:https://juejin.cn/post/6985144003716972558
评论
签到
购物车
客服
赚钱

入驻猿来入此平台

睡后收入不是梦想

我要赚钱
公众号

扫码关注公众号

每月领专属优惠