[PYTHON] Tri sélectif O (n ^ 2)

Aussi à partir de livres


#Très long mais plus facile à comprendre le tri
#Je vais le regarder dans l'ordre depuis le début, car il diminuera avec le temps
#Vrai O(n x 1/2 x n)Devient
#O parce qu'il est ignoré dans la notation big o(n^2)Écrire

def findSmallest(arr):
    smallest = arr[0]        #Stockez la plus petite valeur
    smallest_index  = 0 #Stocke l'index de la plus petite valeur
    for i in range(1, len(arr)):
        if arr[i] < smallest: #Premier tableau[0]Comparer avec
            smallest = arr[i]
            smallest_index = i
    return smallest_index

#Tri sélectif à l'aide de cette fonction
def selectionSort(arr):   #Trier le tableau
    newArr = []
    for i in range(len(arr)):
        smallest = findSmallest(arr)   #Trouvez le plus petit élément du tableau
        newArr.append(arr.pop(smallest)) #Ajouter au nouveau tableau
    return newArr

print selectionSort([5,3,6,2,10])  #Trié

Résultats triés par ordre [2,3,5,6,10]

Recommended Posts

Tri sélectif O (n ^ 2)
SélectionSort
Factorisation prime avec O (n ^ (1/4))
Trier
Tri sélect écrit en C