Selection sort

Osserva il meccanismo

ss1_

def selection_sort(lista):
    n=len(lista)
    for i in range(n-1):
        posmin=i
        for j in range(i+1,n):
            if(lista[j] < lista[posmin]):
                posmin=j

        temp         =lista[i]  
        lista[i]     =lista[posmin]
        lista[posmin]=temp

LISTA=[20,15,10,3]
selection_sort(LISTA)

Lo scambio solo se necessario

def selection_sort(lista): 
    n=len(lista) 
    for i in range(n-1): 
        posmin=i 
        for j in range(i+1,n): 
            if(lista[j] < lista[posmin]): 
                posmin=j 

        if(posmin != i):
            temp         =lista[i] 
            lista[i]     =lista[posmin] 
            lista[posmin]=temp

LISTA=[20,15,10,3]
selection_sort(LISTA)