排序算法之选择排序

介绍

选择排序是一种简单直观的排序算法。

演示

Select-Sort

复杂度

最坏时间复杂度:O(n^2)
最优时间复杂度:O(n^2)
平均时间复杂度:O(n^2)
最坏空间复杂度:O(n),需要辅助空间O(1)

步骤

它的工作原理如下。

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

python

def select_sort(li):
    for i in range(len(li)):
        min = i
        for j in range(i + 1, len(li)):
            if li[j] < li[min]:
                min = j
        if min != i:
            li[min], li[i] = li[i], li[min]
    return li
print(select_sort(li))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 选择排序也是一种简单直观的排序算法。它的工作原理很容易理解:首先在未排序序列中找到最小(大)元素,存放到排序序列的...
    BEYOND黄阅读 1,706评论 0 0
  • 该系列文章主要是记录下自己暑假这段时间的学习笔记,暑期也在实习,抽空学了很多,每个方面的知识我都会另起一篇博客去记...
    Yanci516阅读 14,236评论 6 19
  • 本文分析冒泡、选择、插入、希尔、快速、归并和堆排序,为不影响阅读体验,将关于时间、空间复杂度和稳定性的概念放在博文...
    DeppWang阅读 3,226评论 0 2
  • 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可...
    意识流丶阅读 8,423评论 2 9
  • 去年9月可是减肥,好容易过年瘦了七八斤,过个年,好家伙,直接涨了十斤。 得知真相之后的我,居然抱有反正迟早都会瘦下...
    suuny邢阅读 1,778评论 0 0

友情链接更多精彩内容