komplexität bestimmen

ficak

Mitglied
hi leute. ich muss die komplexität der folgenden codes bestimmen. bin mir dabei aber sehr unsicher. würde mich freuen wenn mir jemand sagen könnte wie ich das schneller erkenne oder irgendwie bestimme. für die beiden code habe ich mir gedacht
1) konstante fkt
2)hier verwirrt mich das b

wenn mir irgendwer helfen könnte wäre sehr dankbar

1)
Java:
 public static boolean dupe1(int[] a) {
for (int i=0;i<a.length;i++)
for (int j=0;j<a.length;j++)
if (a[i] == a[j] && i != j) return true;
return false;
}

2)
Java:
public static boolean dupe2(int[] a) {
boolean b = false;
for (int i=0;i<a.length;i++)
for (int j=0;j<a.length;j++)
if (a[i] == a[j] && i != j) b = true;
return b;
}
 
S

SlaterB

Gast
beim zweiten wird b zwar evt. geändert, das hat aber keinen Einfluss auf die Arbeit der Methode,
etwa die Anzahl der Vergleiche, b kannst du ignorieren,
edit: obwohl es schon interessant was die erste Funktion dagegen anders macht..

zu 1) schreibe doch, warum du das vermutest,
welche Komplexitäten kennst du, welche Regeln dazu, wann ist deiner Meinung nach etwas von Komplexität x, wann y, wann z,
wieso sollte 1) gerade konstant sein und nicht etwas anderes (was gibt es noch anderes)?
 

ficak

Mitglied
also ich soll die laufzeit bestimmen. dafür muss ich ja wissen welche fkt der code darstellt
bei der 1 dachte ich es wäre konstant weil das dingen wahr wird wenn j ungleich i ist und bzw aber a gleich a[j] sein soll. sonst ist das false. und mir ist da nur konst fkt eingefallen. ehrlich gesagt ist das ja wohl nicht die beste mehtode zur bestimmung. ich soll die beiden codes vergleichen und sagen ob sie gleiche komp haben. ich habe das so erklärt bekommen das ich die fkt bestimmen muss und dann gucken ob un dwleches schneller wächst
 

Landei

Top Contributor
Variante 1) hat eine Worst-Case-Komplexität von O(n²), wobei n hier a.length ist. Der "schlechtestmögliche" Fall ist natürlich, dass das Array keine doppelten Elemente enthält. Im besten Fall ist die Komplexität O(1) (wenn gleich der erste Vergleich ein Treffer ist). Für die durchschnittliche Komplexität müsste man die Werteverteilung kennen.

Variante 2) hat unabhängig vom Input (also auch im besten, durchschnittlichen und schlechtesten Fall) immer O(n²).
 

ficak

Mitglied
danke kannste mir auch erklären wie genau ich das sehe?
also bei dem ersten wäre ich jetzt auf o(n^2)nicht gekommen.
das zweite weiß ich jetzt nicht genau warum es immer O(n^2) ist
 

XHelp

Top Contributor
Ich denke die Aufgabe zielt darauf aus, die verschiedenen Landau-Symbole zu verwenden:
Beim 1. wäre das ja O(n²), und beim 2.:
eq.latex
 

ficak

Mitglied
danke für die lösung. aber ich hätte doch gerne eine erklärung wie man darauf kommt. bis habe ich immer richtig oder halbwegs richitg geraten aber so kann man ja nicht durch java gehen:)
 

XHelp

Top Contributor
wie du auf n² kommst, müsste ziemlich offensichtlich sein. Äußere Schleife läuft n mal und die innere Schleife läuft n mal, also n²
Beim 1. Beispiel kann es passieren, dass du vorzeitig die Schleifen beendest (durch return), also läuft der Algo "höhstens" n² Schritte
Beim 2. Beispiel läufst du immer die ganzen Schleifen ab und gibst erst dann das Ergebnis zurück. Also läufst du da immer "genau" n² Schritte
 

ficak

Mitglied
danke danke danke..nur in paar sätzen hast du mir das erklärt und ich meine es verstanden zu haben. ich bin das wohl voll falsch angegangen und es war zufällig richtig.:)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Komplexität [-1] Java Basics - Anfänger-Themen 1
M Komplexität Algorithmus Java Basics - Anfänger-Themen 8
J Komplexität Java Basics - Anfänger-Themen 11
B Komplexität und O-Notation Java Basics - Anfänger-Themen 2
M Komplexität Java Basics - Anfänger-Themen 10
H Erste Schritte Frage zur Komplexität O Java Basics - Anfänger-Themen 2
H Komplexität Java Basics - Anfänger-Themen 14
T Komplexität gesucht Java Basics - Anfänger-Themen 10
M Komplexität Java Basics - Anfänger-Themen 2
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
M Radius von einer ellipse bestimmen Java Basics - Anfänger-Themen 7
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
rosima26 Java SubSum bestimmen Java Basics - Anfänger-Themen 76
M Ersten Index von Array bestimmen Java Basics - Anfänger-Themen 14
C Kollision zweier Rechtecke, Schnittpunkte bestimmen Java Basics - Anfänger-Themen 25
C Boolesche Formel, Belegungen bestimmen Java Basics - Anfänger-Themen 8
Der Grütz Verständnisfrage zu Übung aus Java Kurs - Schaltjahr bestimmen Java Basics - Anfänger-Themen 2
H Den Wert einer rekursiven Funktion bestimmen Java Basics - Anfänger-Themen 5
L Partitionierungsgruppen bestimmen Java Basics - Anfänger-Themen 22
H Klassen Die Länge einer Text-Node bestimmen Java Basics - Anfänger-Themen 2
H Minimum in einem Array bestimmen Java Basics - Anfänger-Themen 7
Kawastori Größe eines Arrays bestimmen Java Basics - Anfänger-Themen 13
L Datentypen Deklarierte Felder einer Generic Klasse bestimmen Java Basics - Anfänger-Themen 7
M Array Summe bestimmen? Java Basics - Anfänger-Themen 14
N Bereich Zufallszahl bestimmen (50 und 100 / 80 und 90) Java Basics - Anfänger-Themen 2
J Y-Koordinate von GUI-Objekt bestimmen Java Basics - Anfänger-Themen 2
J Java GUI- Objekte Position per Quelltext bestimmen Java Basics - Anfänger-Themen 4
L Anzahl der Aufrufe von Schleifen bestimmen Java Basics - Anfänger-Themen 1
F Summe in einem Array bestimmen Java Basics - Anfänger-Themen 3
H Ersten Zug bestimmen Java Basics - Anfänger-Themen 12
O Suchbaum Elternknoten finden Level eines Knoten bestimmen Java Basics - Anfänger-Themen 24
C Kleinsten Kreis einer Punktmenge bestimmen Java Basics - Anfänger-Themen 4
CptK Methoden Koordinaten relativ zur Rotation eines Bildes bestimmen Java Basics - Anfänger-Themen 8
J Breite eines Strings bestimmen Java Basics - Anfänger-Themen 4
E Maximalwert im Array bestimmen Java Basics - Anfänger-Themen 8
L Datentypen Date API - diese Woche bestimmen Java Basics - Anfänger-Themen 1
Y Rekursionsgleichung bestimmen Java Basics - Anfänger-Themen 3
Y Teile und Herrsche, längstes absteigendes Teilarray bestimmen Java Basics - Anfänger-Themen 12
T Min und Max einer Zahlenfolge bestimmen Java Basics - Anfänger-Themen 7
V Klassen Bestimmen Sie die erste und letzte Position an der ein 'c' steht? Java Basics - Anfänger-Themen 3
M Bestimmen, wie oft ein Char in einem Array vorkommt Java Basics - Anfänger-Themen 2
P Rückgabewert bestimmen Java Basics - Anfänger-Themen 17
C Vererbung - Ausgaben bestimmen Java Basics - Anfänger-Themen 6
T Anzahl bestimmter Werte eines arrays bestimmen Java Basics - Anfänger-Themen 4
G Datentypen Tipps, Ratschläge erwünscht bzgl. Datentyp bestimmen über Wertebereich Java Basics - Anfänger-Themen 5
E Summe der "Nachbarn" eines Wertes in einem Array bestimmen Java Basics - Anfänger-Themen 8
H Quotient durch Subtraktion bestimmen Java Basics - Anfänger-Themen 12
1 Größe einer zirkulären Liste bestimmen .. ? Java Basics - Anfänger-Themen 2
1 Minimum aller Elemente in einem Array bestimmen Java Basics - Anfänger-Themen 10
D Wochentag für eingegebenes Datum bestimmen anhand von Formel Java Basics - Anfänger-Themen 2
C Werteraum für Variable bestimmen Java Basics - Anfänger-Themen 5
S Vererbung exaktes "Objekt" der Unterklasse bestimmen Java Basics - Anfänger-Themen 5
Screen Wie geringste Absolutdifferenz zum Median bestimmen? Java Basics - Anfänger-Themen 8
V Aufrufendes Objekt bestimmen (nicht die Klasse) Java Basics - Anfänger-Themen 3
J Note bestimmen Java Basics - Anfänger-Themen 13
P BitSet- Objekt- Anzahl der Elemente bestimmen Java Basics - Anfänger-Themen 2
T Minimumsnorm bestimmen Java Basics - Anfänger-Themen 19
T String - kleinstes Zeichen bestimmen Java Basics - Anfänger-Themen 3
M bestimmen zu welchem Array ein Objekt "zugehört" Java Basics - Anfänger-Themen 5
L Koordinaten bestimmen Java Basics - Anfänger-Themen 8
S Zeit bestimmen Java Basics - Anfänger-Themen 4
H Anzahl Ziffer in Zahl bestimmen Java Basics - Anfänger-Themen 3
S Kleinster Wert im Array bestimmen Java Basics - Anfänger-Themen 4
J Klickposition genau bestimmen Java Basics - Anfänger-Themen 12
J Bestimmen ob String aus Kleinbuchstaben besteht Java Basics - Anfänger-Themen 16
N aktuelle Datum Mikrosekunden genau bestimmen Java Basics - Anfänger-Themen 8
G zweitgrößter Wert in array bestimmen Java Basics - Anfänger-Themen 4
L Farbe unter Cursor bestimmen Java Basics - Anfänger-Themen 5
T Variable aus dem Web Netz Internet URL bestimmen Java Basics - Anfänger-Themen 13
B Anzahl der Werte bestimmen Java Basics - Anfänger-Themen 14
X Anzahl Baumknoten bestimmen Java Basics - Anfänger-Themen 5
J Mouseposition bestimmen Java Basics - Anfänger-Themen 5
F Meßwertfolge bestimmen Java Basics - Anfänger-Themen 10
J Arraylänge mittels "Array.getLength" bestimmen!? Java Basics - Anfänger-Themen 3
B JMenu Position bestimmen Java Basics - Anfänger-Themen 7
H Javacode erklären: Mittelpunkt bestimmen Java Basics - Anfänger-Themen 4
M Interval Teilmenge bestimmen - Fehler in meiner Lösung Java Basics - Anfänger-Themen 6
N zweidimensionales array größe bestimmen Java Basics - Anfänger-Themen 1
A Anzahl Zeilen eines Arrays bestimmen Java Basics - Anfänger-Themen 10
Q Zeichnen - wie von außen bestimmen, was gezeichnet werden soll? Java Basics - Anfänger-Themen 26
J Classpath bestimmen, unter Windows 7 Java Basics - Anfänger-Themen 2
S Variable über den Vektor bestimmen Java Basics - Anfänger-Themen 20
A OOP Programm zum bestimmen von Primzahlen, OutofBoundsException Java Basics - Anfänger-Themen 10
B Anzahl von gerundeten Punkten bestimmen Java Basics - Anfänger-Themen 9
C Polygon um Figur bestimmen Java Basics - Anfänger-Themen 10
L Zeilenanzahl bestimmen? Java Basics - Anfänger-Themen 7
M Sha256-Wert eines Files bestimmen Java Basics - Anfänger-Themen 13
T aus Integer Array Maximum bestimmen Java Basics - Anfänger-Themen 7
M Nachbar von Knoten bestimmen Java Basics - Anfänger-Themen 8
J 2Dimensionales Array, Größe durch Eingabe bestimmen Java Basics - Anfänger-Themen 9
C Position eines Fensters bestimmen Java Basics - Anfänger-Themen 3
Y Vor- und Nachkommawerte eines doubles bestimmen Java Basics - Anfänger-Themen 7
W Variablenzuweisung über Wert bestimmen Java Basics - Anfänger-Themen 2
G die Größe eines Button bestimmen ? Java Basics - Anfänger-Themen 4
6 Wie das angeklickte Objekt bestimmen? Java Basics - Anfänger-Themen 4
philipp Instanznamen mit einem String bestimmen. Java Basics - Anfänger-Themen 11
P Abstand vom Rahmen zu Komponenten bestimmen? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben