美文网首页排序算法(python)
python实现选择排序(SelectionSort)

python实现选择排序(SelectionSort)

作者: 阿旭123 | 来源:发表于2020-12-07 18:56 被阅读0次

    python实现【选择排序】

    算法原理及介绍

    选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

    简单的说就是每次从剩余元素中选择最小或最大的元素,进行依次排序。

    算法过程描述

    n个记录的直接选择排序可经过n-1趟的选择排序得到有序结果。具体算法描述如下:

    1. 初始状态:无序区为R[1..n],有序区为空;

    2. 第i趟排序(i=1,2,3…n-1)开始时,当前有序区和无序区分别为R[1..i-1]和R(i..n)。该趟排序从当前无序区中-选出关键字最小的记录 R[k],将它与无序区的第1个记录R交换,使R[1..i]和R[i+1..n)分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区;

    3. n-1趟结束,数组有序化了。

    算法排序图解如下

    选择.gif

    python实现代码

    def selectionSort(arr):
        n = len(arr)
        for i in range(n-1): 
            # 索引从0到n-2,每一轮在该位置都会放每轮找到的最小值
            minIndex = i
            for j in range(i+1,n):
                if arr[j] < arr[minIndex]:  # 寻找最小数
                    minIndex = j            # 将最小值的索引保存
            arr[i], arr[minIndex] = arr[minIndex], arr[i]
        return arr
    

    如果喜欢作者,欢迎点赞、收藏及关注,谢谢!
    点击下面相应的链接即可查看各个算法的详细介绍及python实现方法

    1. 冒泡排序(BubbleSort)
    2. 选择排序(SelectionSort)
    3. 插入排序(InsertSort)
    4. 归并排序(MergeSort)
    5. 快速排序(QuickSort)
    6. 堆排序(Heap Sort)
    7. 计数排序(Count Sort)
    8. 桶排序(Bucket Sort)
    9. 基数排序(Radix Sort)
    10. 希尔排序(Shell Sort)

    相关文章

      网友评论

        本文标题:python实现选择排序(SelectionSort)

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