选择排序

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。

假设待排序的元素数量为n,第一次需要检查n个元素,随后检查的元素数依此为n-1,n-2,…1,平均每次检查的元素数为 1 2 n \frac{1}{2}n 21n,因此运行时间为O( 1 2 n 2 \frac{1}{2}n^2 21n2),但是大O表示法省略诸如 1 2 \frac{1}{2} 21的常数,因此简单写作O( n 2 n^2 n2)。

def findSmallest(arr):
    smallest=arr[0]
    smallestIndex=0
    for i in range(1,len(arr)):
        if arr[i]<smallest:
            smallest=arr[i]
            smallestIndex=i
    return smallestIndex

def selectionSort(arr):
    newArr=[]
    for i in range(len(arr)):
        smallestIndex=findSmallest(arr)
        newArr.append(arr.pop(smallestIndex))
    return newArr

print(selectionSort([5,2,0,1,100,20]))
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页