Komplexität gesucht

techdevil

Aktives Mitglied
Hi,

N ist ein Array mit n Elementen.
Java:
for(int i=0;i<N.length;i++){
	      for(int j=i+1;j<N.length;j++){
                Konstanter Aufwand
    }
}
Gesucht ist jetzt die Laufzeit-Komplexität von diesem Algorithmus bezogen auf die Problemgröße n.
Mich irritiert, dass das Problem in der inneren Klammer ja jeweils um 1 reduziert wird..
 
Zuletzt bearbeitet:
erstes for:
n mal
zweites for
(n-1) + (n-2) ... (1) --> n mal
-->
O(n^2)

genau:
( (n-1) + (n-2) ... (1) ) --> n * (n+1)/2 )

(wenn ich mich da nicht irre ???:L)
 
Zuletzt bearbeitet:
>ist es nicht:

hmmm...papier hervornehm..

Summ(1 - (n- 1) = 1 +___ 2__ + .... + (n-2) + (n-1)
Summ(1 - (n- 1) = (n-1) +(n-2) + ... +___ 2 + 1

2 Sum = (1 + (n-1)) + (2+ (n-2) .....
2 Sum = n + n + n...
2 Sum = n ( n- 1)
--> n(n-1)/2

(stimm das?)

EDIT:
>Das ganze mal n wäre n²*(n-1)/2
--> Das wäre dann aber n^3 ;-)

Die aussere Schleife n mal, die innere n mal (halt immer ein wenig weniger)
n * n --> n^2 (eben genau n*(n-1)/2 )
 
Zuletzt bearbeitet:
jo es ist O(n^2)
hatte einen gedankenfehler drin genau wie joe...
man muss am ende nicht mehr n multiplizieren. Weil die Reihe den gesamt Durchlauf audrück und nicht nur den inneren...
 
Zuletzt bearbeitet:

Zurück
Oben