Python-Datenstruktur-Tag1

0. Die grundlegenden Eigenschaften des Algorithmus
0. Es gibt 0 oder mehr Eingaben.
1. Es gibt 1 oder mehr Ausgaben.
2. Die vom Algorithmus ausgeführten Schritte sind unendlich.
3. Die Bedeutung der bei jedem Schritt ausgeführten Sätze ist eindeutig.
4. Die Entwurfsidee des Algorithmus muss machbar sein

1. Der Algorithmus wird anhand der Zeitkomplexität "Big O" gemessen,
da die Ausführungszeit jeder Maschine immer unterschiedlich ist, die Anzahl der Ausführungskosten jedoch ungefähr gleich ist. Um dieses ungefähr gleiche Konzept zu messen, führen wir die Zeitkomplexität ein. Die Zeitkomplexität umfasst die optimale Zeitkomplexität, die schlechteste Zeitkomplexität und die durchschnittliche Zeitkomplexität. Im Allgemeinen wird zuerst die Worst-Case-Komplexität untersucht (die Reihenfolge der Daten ist ungeordnet).
Sequentielle Struktur --- Komplexitätsaddition
Schleifenstruktur --- Komplexitätsmultiplikation
Zweigstruktur --- Komplexität im schlimmsten Fall in der Verzweigung,
ignorieren Sie den konstanten Term (O (1))

2. Gemeinsamer konstanter Term für Zeitkomplexität und Größenvergleich
-------- O (1)
linearer Term -------- O (N)
quadratischer Term --------- O ( N²)
kubischer Term --------- O (N³)
logarithmischer Term --------- O (logN)
Exponentialterm --------- O (a ^ N)
NlogN ---------- O (NlogN)

Fügen Sie hier eine Bildbeschreibung ein

3.timeit misst die Zeitkomplexität von Python-Code
timeit misst die Zeit

from timeit import Timer


def t1():
    l1 = []
    for i in range(1000):
        l1.append(i)


text_time1 = Timer("t1", "from __main__ import t1")
print("append_time:{}".format(text_time1.timeit(1000)))



append_time:1.3199999999990997e-05

Allgemeine Komplexität der Operation der Liste

4.timeit misst die Komplexität der Liste
Komplexität der Betriebszeit bestimmen

Ich denke du magst

Origin blog.csdn.net/soulproficiency/article/details/104505844
Empfohlen
Rangfolge