[PYTHON] Selektive Sortierung O (n ^ 2)

Auch aus Büchern


#Sehr zeitaufwändig, aber am einfachsten zu verstehen
#Ich werde es von Anfang an in der richtigen Reihenfolge betrachten, da es mit der Zeit abnehmen wird
#Echtes O.(n x 1/2 x n)Wird
#O weil es in der großen o-Notation ignoriert wird(n^2)Schreiben

def findSmallest(arr):
    smallest = arr[0]        #Speichern Sie den kleinsten Wert
    smallest_index  = 0 #Speichert den Index des kleinsten Werts
    for i in range(1, len(arr)):
        if arr[i] < smallest: #Erstes Array[0]Vergleichen mit
            smallest = arr[i]
            smallest_index = i
    return smallest_index

#Selektive Sortierung mit dieser Funktion
def selectionSort(arr):   #Sortieren Sie das Array
    newArr = []
    for i in range(len(arr)):
        smallest = findSmallest(arr)   #Suchen Sie das kleinste Element im Array
        newArr.append(arr.pop(smallest)) #Zu neuem Array hinzufügen
    return newArr

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

Ergebnisse nach Reihenfolge sortiert [2,3,5,6,10]

Recommended Posts

Selektive Sortierung O (n ^ 2)
SelectionSort
Primfaktorisierung mit O (n ^ (1/4))
Sortieren
Schriftliche Auswahlsortierung in C.