选择排序是比较简单的一种排序,它的主要思想是每次循环找出最小的数,把它放到未排序的子数组的首位,然后进行下一次循环。

下一次循环的时候,就多了一个排好序的数,少了一次比较。用python如下实现:

def Choose_sort(a):
    
    N = len(a)
    for i in range(0, N): 
        min_index = i               #最小数的起始位置
        for j in range(i+1, N):     #每次从未排序的子数组开始循环 
            if a[min_index] > a[j]:  
                min_index = j       #遇到比自己小的就把它的位置保存在min_index中

        t = a[i]                     
        a[i] = a[min_index]         #把最小值保存在a[i]中,i是子数组的起始位置,循环就从i+1开始了
        a[min_index] = t            #把原来a[i]里面的值保存到原来最小值的位置,完成交换

    return a