Inhaltsverzeichnis
1. Algorithmuseffizienz
2. Zeitkomplexität
1. Zeitkomplexitätskonzept
2. Asymptotische Darstellung von Big O
3. Raumkomplexität #🎜 🎜#
Heim Java javaLernprogramm Beispielanalyse für Java-Zeitkomplexität und Raumkomplexität

Beispielanalyse für Java-Zeitkomplexität und Raumkomplexität

May 01, 2023 pm 02:43 PM
java

1. Algorithmuseffizienz

Die Algorithmuseffizienzanalyse ist in zwei Typen unterteilt: Der erste ist die Zeiteffizienz und der zweite ist die Raumeffizienz. Zeiteffizienz wird als Zeitkomplexität bezeichnet, und Raumeffizienz wird als Raumkomplexität bezeichnet. Die Zeitkomplexität misst hauptsächlich die Laufgeschwindigkeit eines Algorithmus, während die Raumkomplexität hauptsächlich den zusätzlichen Speicherplatz misst, den ein Algorithmus benötigt. In den Anfängen der Computerentwicklung war die Speicherkapazität von Computern sehr gering. Daher liegt uns die Komplexität des Weltraums sehr am Herzen. Nach der rasanten Entwicklung der Computerindustrie hat die Speicherkapazität von Computern jedoch ein sehr hohes Niveau erreicht. Daher müssen wir der räumlichen Komplexität eines Algorithmus keine besondere Aufmerksamkeit mehr schenken.

2. Zeitkomplexität

1. Zeitkomplexitätskonzept

Die von einem Algorithmus benötigte Zeit ist proportional zur Anzahl der Ausführungen seiner Anweisungen. Die Anzahl der Ausführungen grundlegender Operationen in einem Algorithmus ist die zeitliche Komplexität des Algorithmus. Das heißt, wenn wir einen Code erhalten und die zeitliche Komplexität des Codes betrachten, finden wir hauptsächlich heraus, wie oft der Code mit den meisten ausgeführten Anweisungen im Code ausgeführt wurde.

2. Asymptotische Darstellung von Big O

Sehen Sie sich die Bildanalyse an:

Beispielanalyse für Java-Zeitkomplexität und Raumkomplexität

Wenn N Die Werte werden immer größer und die Werte von 2N und 10 können ignoriert werden.

Tatsächlich müssen wir bei der Berechnung der Zeitkomplexität nicht die genaue Anzahl der Ausführungen berechnen, sondern nur die ungefähre Anzahl der Ausführungen. Daher verwenden wir hier die asymptotische Darstellung von Big O.

Big-O-Notation: Es handelt sich um ein mathematisches Symbol, das zur Beschreibung des asymptotischen Verhaltens einer Funktion verwendet wird.

1. Ersetzen Sie alle additiven Konstanten zur Laufzeit durch die Konstante 1.

2. In der modifizierten Laufzeitfunktion wird nur der Term höchster Ordnung beibehalten.

3. Wenn der Term höchster Ordnung existiert und nicht 1 ist, entfernen Sie die Konstante multipliziert mit diesem Term. Das Ergebnis ist die Big-O-Ordnung.

Beispielanalyse für Java-Zeitkomplexität und Raumkomplexität

Durch das Obige werden wir feststellen, dass die asymptotische Darstellung von Big O diejenigen Elemente entfernt, die wenig Einfluss auf die Ergebnisse haben, und die Anzahl der Ausführungen ausdrückt prägnant und klar.

Darüber hinaus gibt es für die Zeitkomplexität einiger Algorithmen beste, durchschnittliche und schlechteste Fälle:

Worst Case: die maximale Anzahl von Läufen (Obergrenze) für jede Eingabegröße# 🎜 🎜#

Durchschnittsfall: die erwartete Anzahl von Läufen für jede Eingabegröße

Bestfall: die minimale Anzahl von Läufen (Untergrenze) für jede Eingabegröße

#🎜🎜 #Beispiel: Bei einer Suche nach Daten Algorithmus, sodass die zeitliche Komplexität der Suche nach Daten im Array O(N) ist 🎜#

Die Grundoperation wird 2N+10 Mal ausgeführt. Durch Ableitung der großen O-Ordnungsmethode ist bekannt, dass die Zeitkomplexität O(N)

Beispiel 2 ist.

Die Grundoperation wird M+N-mal ausgeführt, und es gibt zwei unbekannte Zahlen M und N, und die Zeitkomplexität ist O(N). +M)

Beispiel 3:

Grundoperationsausführung 100 Mal, durch Ableitung der großen O-Order-Methode, der Zeit Komplexität ist O(1)Beispielanalyse für Java-Zeitkomplexität und Raumkomplexität

Beispiel 4: Berechnen Sie die zeitliche Komplexität der Blasensortierung

Die Grundoperation wird N ausgeführt Bestenfalls mal (N*(N-1))/2 Mal, wenn man die Methode der großen O-Reihenfolge + Zeitkomplexität ableitet, wird im Allgemeinen der schlimmste Fall gesehen, und die Zeit ist komplex ^2Beispielanalyse für Java-Zeitkomplexität und Raumkomplexität

Beispiel 5: Zeitkomplexität der binären Suche

Grundoperationen führen 1 mal am besten aus, das schlechteste ist O( logN) mal beträgt die Zeitkomplexität O(logN) ps: logN bedeutet, dass die Basis 2 und der Logarithmus an einigen Stellen N ist (es wird empfohlen, dies durch Origami-Suche zu erklären. Wie wird logN berechnet?) (Weil binäre Suche Eliminiert jedes Mal die Hälfte der ungeeigneten Werte, die verbleibenden Werte nach einer binären Suche sind: n/2 und die verbleibenden Werte nach zwei binären Suchen sind: n/2/2 = n/4)#🎜 🎜## 🎜🎜#Beispiel 6: Berechnen Sie die zeitliche Komplexität der faktoriellen RekursionBeispielanalyse für Java-Zeitkomplexität und Raumkomplexität

Die zeitliche Komplexität der Rekursion = die Anzahl der Rekursionen * die Häufigkeit, mit der jede Rekursion ausgeführt wird

#🎜🎜 #

# 🎜🎜#

Durch Berechnung und Analyse wird festgestellt, dass die Grundoperation N-mal rekursiv ist und die Zeitkomplexität O(N) ist

Beispiel 7: Berechnen die zeitliche Komplexität der Fibonacci-Rekursion#🎜 🎜#Beispielanalyse für Java-Zeitkomplexität und Raumkomplexität

Durch Berechnung und Analyse wurde festgestellt, dass die Grundoperation 2^N-mal rekursiv ist und die Zeitkomplexität O(2^N) beträgt.

Regel:

Beispielanalyse für Java-Zeitkomplexität und Raumkomplexität

2^0+2^1+2^2+2^3……2^ (n-(n-1))

Summe der geometrischen Folge

Beispielanalyse für Java-Zeitkomplexität und Raumkomplexität

a1 stellt den ersten Term dar, q Das Verhältnis ist 2, 1(1-2^n)/-1, was 2^n+1 entspricht, also ist die Zeitkomplexität O(2^n)

3. Raumkomplexität #🎜 🎜#

Die Speicherplatzkomplexität ist ein Maß für die Menge an Speicherplatz, die ein Algorithmus während des Betriebs vorübergehend belegt. Die Speicherplatzkomplexität gibt nicht an, wie viele Bytes Speicherplatz das Programm einnimmt, da dies nicht sehr aussagekräftig ist. Daher wird die Speicherplatzkomplexität anhand der Anzahl der Variablen berechnet. Die Regeln zur Berechnung der Raumkomplexität ähneln im Wesentlichen der praktischen Komplexität, und es wird auch die asymptotische Big-O-Notation verwendet.

Beispiel 1: Berechnen Sie die Raumkomplexität der Blasensortierung

Beispielanalyse für Java-Zeitkomplexität und Raumkomplexität

verwendet einen konstanten zusätzlichen Raum, also die Raumkomplexität Es ist O(1) Raum, die Raumkomplexität ist O(N)

Beispiel 3: Berechnen Sie die Raumkomplexität der faktoriellen Rekursion

Beispielanalyse für Java-Zeitkomplexität und Raumkomplexität#🎜 🎜# N-maliger rekursiver Aufruf, N Stapelrahmen werden geöffnet und jeder Stapelrahmen belegt eine konstante Menge an Speicherplatz. Die Raumkomplexität ist O(N)

Das obige ist der detaillierte Inhalt vonBeispielanalyse für Java-Zeitkomplexität und Raumkomplexität. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Perfekte Zahl in Java Perfekte Zahl in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Zeitstempel für Datum in Java Zeitstempel für Datum in Java Aug 30, 2024 pm 04:28 PM

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

Java -Programm, um das Kapselvolumen zu finden Java -Programm, um das Kapselvolumen zu finden Feb 07, 2025 am 11:37 AM

Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4

Wie führe ich Ihre erste Spring -Boot -Anwendung in der Spring Tool Suite aus? Wie führe ich Ihre erste Spring -Boot -Anwendung in der Spring Tool Suite aus? Feb 07, 2025 pm 12:11 PM

Spring Boot vereinfacht die Schaffung robuster, skalierbarer und produktionsbereiteter Java-Anwendungen, wodurch die Java-Entwicklung revolutioniert wird. Der Ansatz "Übereinkommen über Konfiguration", der dem Feder -Ökosystem inhärent ist, minimiert das manuelle Setup, Allo

See all articles