美文网首页
选择排序 Python实现

选择排序 Python实现

作者: Yuanshuo | 来源:发表于2019-08-01 11:08 被阅读0次
The core values of Chinese socialism
"""
算法:
    首先在未排序序列中找到最大(小)元素
    存放到排序序列的起始位置
    再从剩余未排序元素中继续寻找最大(小)元素然后放到已排序序列的末尾
    以此类推,直到所有元素均排序完毕
选择排序的主要优点与数据移动有关:
    如果某个元素位于正确的最终位置上,则它不会被移动
    选择排序每次交换一对元素,总共进行至多n-1次交换
性能分析:
    最优时间复杂度O(n^2)
    最坏时间复杂度O(n^2)
    稳定性:不稳定(考虑升序每次选择最大的情况)
"""
def selection_sort(alist):
    n = len(alist)
    # 需要进行n-1次选择操作
    for i in range(n-1):
        # 记录最小位置
        min_index = i
        # 从i+1 位置到末尾选择出最小数据
        for j in range(i+1, n):
            if alist[j] < alist[min_index]:
                min_index = j
        # 如果选择出的数据不在正确位置,进行交换
        if min_index != i:
            alist[i], alist[min_index] = alist[min_index], alist[i]

if __name__ == '__main__':
    alist = [36, 234, 1, 34, 67, 76, 36, 87]
    selection_sort(alist)
    print(alist)
[1, 34, 36, 36, 67, 76, 87, 234]

相关文章

  • 排序算法详细代码实现

    算法分类 算法时间复杂度 选择排序 插入排序 C++实现 Python实现 冒泡排序 Python实现 归并排序 ...

  • python实现选择排序(SelectionSort)

    python实现【选择排序】 算法原理及介绍 选择排序(Selection-sort)是一种简单直观的排序算法。它...

  • 七大排序算法的 Python

    本文用Python实现了插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序。 1、插...

  • 八大排序算法的 Python 实现(转)

    本文用Python实现了插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序。 1、插...

  • Python实现程序员必备之排序算法汇总

    本文用Python实现了快速排序、插入排序、希尔排序、归并排序、堆排序、选择排序、冒泡排序共7种排序算法。 一、快...

  • python 排序算法

    文章概述 介绍各大常用经典的排序算法和效率,以及python实现常用算法(冒泡排序,选择排序,快速排序,插入排序)...

  • Python 实现七大排序算法

    本文用 Python 实现了插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序。 先整体看一下...

  • 选择排序Python实现

    选择排序分析 输入: 长度为length的无序数组 输出: 长度为length的升序数组 原理从第一个数开始, 遍...

  • python实现选择排序​

    python实现选择排序​ ​ 假设你有一个因为列表,上面记录你歌曲的播放数量,现在需要对音乐列表进行排序,按...

  • 选择排序 Python实现

网友评论

      本文标题:选择排序 Python实现

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