1、选择排序法不是稳定排序法,空间复杂度为最佳,只需一个额外空间
2、无论是最坏情况、最佳情况还是平均情况都需要找到最大值(或最小值), 因此比较的次数是(n-1) + (n-2) +…+3 + 2+1 = n(n-1)/2, 时间复杂度为O(n^2)
3、此排序法适用于数据量小或有部分数据已经过排序的情况

数据从小到大排序:

def showdata(data):
    for i in range(len(data)):
        print(data[i], end = " ")
    print()

def select(data):
    print("排序前的结果为:")
    showdata(data)

    for i in range(len(data)-1):
        for j in range(i+1, len(data)):
            if data[i] > data[j]:  # 比较第i个元素和第j个元素
                data[i], data[j] = data[j], data[i]     
    
    print("排序后的结果为:")
    showdata(data)
    

if __name__ == "__main__":
    select([1,3,5,2])

排序前的结果为:
1 3 5 2
排序后的结果为:
1 2 3 5

数据从大到小排序

def showdata(data):
    for i in range(len(data)):
        print(data[i], end = " ")
    print()

def select(data):
    print("排序前的结果为:")
    showdata(data)

    for i in range(len(data)-1):
        for j in range(i+1, len(data)):
            if data[i] < data[j]:  # 比较第i个元素和第j个元素
                data[i], data[j] = data[j], data[i]     
    
    print("排序后的结果为:")
    showdata(data)
    

if __name__ == "__main__":
    select([1,3,5,2])

排序前的结果为:
1 3 5 2
排序后的结果为:
5 3 2 1