Während @ sepp2k eine wunderbare Antwort gibt, ist hier einige echte Leben Algorithmen, die T(N) = 1+2+3+...+n
haben
Insertion Sort in seiner schlimmsten Fall (also wir einen solchen Algorithmus O(n^2)
genannt): Es hat eine äußere Schleife, die Schleife n
mal, und für die innere Schleife, Schleifen es den sortierten Teil des Arrays, um eine Position zum Einfügen des nächsten Elements zu finden, wo der sortierte Teil um 1 für jede äußere Schleife Iteration erhöht, so dass die innere Schleife im schlimmsten Fall 1+2+3+4+..+n-1
läuft mal
Longest Increasing Subsequence (LIS) naive implementation mit: Direkte Umsetzung der Rekursion , das für jede Iteration i
, müssen wir durch all < i
Interval Graph Coloring (Interval Partitioning) mit naiver Implementierung j
aussehen: Nach den Intervallen sortieren, für jedes Intervall x
, müssen wir feststellen, wie viele Intervalle vor x
im Konflikt mit x
, und die Antwort auf das Problem ist die maximale Konfliktzahl. So, während die äußere Schleife jedes Intervall wird Looping i
wird die innere Schleife für alle Test j
< i
Prime Generating mit naiven primality Looping: Natürlich können wir alle Primzahlen innerhalb n
, mit naiven Primzahltest auf allen i
erzeugen innerhalb n
. Das heißt, für alle i
, wir Schleife für alle j
< i
zu sehen, ob j
teilt i
Tatsächlich gibt es viele Algorithmen, die eine solche Struktur enthält, und die meisten von ihnen, dass ich gesehen haben, können durch die Verwendung eines verbessert werden brillanterer Algorithmus oder erweiterte Datenstruktur.
- Quicksort/Merge Sort
- LIS mit binärer Suche
- Intervall Partitionierung mit Prioritätswarteschlange
- Irgendwelche prime Sieb algoriothms
Das kann (n) in 'O erfolgen', Warum denkst du, es ist "O (n^2)"? –
Ich erinnere mich, dass ich dies einmal im Kalkül getan habe, diese Summe 1 + 2 + 3 + ... + n ist gleich n (n + 1)/2, und durch Multiplikation können wir sagen, dass es O (n^2). Bitte korrigieren Sie mich, falls ich falsch liege. – Kamoukou
'n (n + 1)/2' ist einfach eine Konstante, die' O (1) 'ist. Um hier klar zu sein, gilt 'n! = O (n)', das bezieht sich auf die tatsächliche Zahl 'n'. –