八大排序算法之选择排序

      算法思想:从列表中选择最大的一个元素将其添加到一个新的列表中,然后重复上述操作,找出第二大元素.....依次类推,最后新列表必然是一个有序的列表

     代码如下:

def get_number(num):
    import random
    lst = []
    i = 0
    while i < num:
        lst.append(random.randint(0,100))
        i += 1
    return lst

def selectsort(lst):
    for i in range(0,len(lst)):
        min = i
        for j in range(i+1,len(lst)):
            if lst[min] > lst[j]:
                min = j
        lst [min] ,lst[i] = lst[i],lst[min]

    return lst


a = get_number(10)
print("排序之前:",a)
b = selectsort(a)
print("排序之后:",b)

######输出结果#######
排序之前: [48, 34, 52, 65, 29, 81, 69, 9, 19, 89]
排序之后: [9, 19, 29, 34, 48, 52, 65, 69, 81, 89]

    算法性能分析:

      每次寻找最小(大)值都必须从头开始查找,一共要循环遍历n次。

          排序中还需要遍历n次,将找到的值添加到新的列表中。

      综合分析,选择排序的时间复杂度为O(n^2)

  排序效果:

原文地址:https://www.cnblogs.com/vipchenwei/p/6874017.html