Was sind die Laufzeit- und Platzkomplexität in Python, wenn eine Liste in einen Satz konvertiert wird?
Example:
data = [1,2,3,4,5,5,5,5,6]
# this turns list to set and overwrites the list
data = set(data)
print data
# output will be (1,2,3,4,5,6)
Antworten:
2 für die Antwort № 1Um eine Liste in einen Satz zu konvertieren, muss jedes Element der Liste einmal besucht werden, O (n). Das Einfügen eines Elements in eine Menge ist O (1), die Gesamtzeitkomplexität wäre also O (n).
Der für den neuen Satz benötigte Platz ist kleiner oder gleich der Länge der Liste, also auch O (n).
Hier ist ein gutes Referenz für Python-Datenstrukturen.
1 für die Antwort № 2
Sie müssen die gesamte Liste durchlaufen, die Zeit O (n) ist, und dann jede in eine Menge einfügen, die Zeit O (1). Die Gesamtzeitkomplexität ist also O (n), wobei n die Länge der Liste ist.
Es wird kein anderer Speicherplatz als der erstellte Satz oder die verwendete Liste benötigt.