Ausdruck O(N^2) < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
 
 
   | 
  
 
  
   
    
     
	   | Status: | 
	   		           				(Frage) beantwortet    |    | Datum: |  14:21 Sa 13.11.2021 |    | Autor: |  senmeis |   
	   
	   Hi,
 
 
in Softwaretechnik ist ein Ausdruck [mm] O(N^2) [/mm] zu merken der sich auf Speicherbedarf beziehen sollte. Ist dieser der standardisierte Ausdruck? Was ist [mm] N^2?
 [/mm] 
 
 
      | 
     
    
   | 
  
 |          | 
 
 
   | 
  
 
  
   
    
     
	   | Status: | 
	   		           				(Antwort) fertig    |    | Datum: |  18:06 Sa 13.11.2021 |    | Autor: |  fred97 |   
	   
	  
  
> Hi,
 
>  
 
> in Softwaretechnik ist ein Ausdruck [mm]O(N^2)[/mm] zu merken der 
 
> sich auf Speicherbedarf beziehen sollte. Ist dieser der 
 
> standardisierte Ausdruck? Was ist [mm]N^2?[/mm]
 
>   
 
 
Schau nach bei Google unter Landausymbole 
 
 
 
      | 
     
    
   | 
  
 
 |   
|          | 
 
 
   | 
  
 
  
   
    
     
	  
	   Der Ausdruck ist in der Programmiertechnik ein Maß für den Rechenaufwand eines Algorithmus. Dieser kann sich auf die Rechenzeit und/oder den Speicheraufwand beziehen und bedeutet folgendes:
 
 
N=Anzahl der Daten
 
 
O=Verhalten des Aufwandes.
 
 
O(N) bedeutet: Der Aufwand ist etwa proportional zur Datenmenge, also doppelte Datenmenge [mm] \hat= [/mm] doppelter Rechenzeit und/oder doppeltem Speicheraufwand.
 
 
[mm] O(N^2) [/mm] bedeutet: Der Aufwand wächst etwa quadratisch mit der Datenmenge. 
 
Beispiel: N Daten sollen paarweise miteinander verglichen werden. Der Speicheraufwand beträgt O(N) (doppelt so viele Daten - doppelt soviel Speicher), der Rechen-/Zeitaufwand aber [mm] O(N^2). [/mm] Bei 4 Daten hast du die Vergleiche 1-2, 1-3, 1-4, 2-3, 2-4 und 3-4, also 6 Vergleiche.
 
Bei 8 Daten hast du 7 Vergleiche 1-x, 6 Vergleiche 2-x, ... 1 Vergleich 7-8, also 7+6+5+4+3+2+1=28 Vergleiche, also mehr als 4 mal so viel. Die Formel dafür lautet
 
 
N*(N-1)/2 = [mm] N^2/2-N/2, [/mm] wobei bei großen N (und nur das wird betrachtet) N/2 gegenüber [mm] N^2/2 [/mm] vernachlässigt werden kann.
 
 
Als die Rechner um 1980 noch viel langsamer waren, habe ich folgende Simulation durchgeführt:
 
 
Es wurden 1200 Pseudonamen erzeugt, indem für jeden Namen ein Salat aus 25 Buchstaben erwürfelt wurde. Der Vorgang dauerte ca. 4 Minuten.
 
Danach wurden die Namen alphabetisch mit dem Programm "Bubblesort" [mm] (O(N^2)) [/mm] sortiert. Nach einer halben Stunde unterbrach ich das Programm und rechnete hoch, wie lange es insgesamt dauern würde. Ich kam auf ca. 9 Stunden.
 
 
Danach sortierte ich dasselbe nochmals mit Quicksort (O(N*log(N))). Es war in 3,5 Minuten fertig. Beide Lösungen stimmten überein.
 
 
 
 
      | 
     
    
   | 
  
 
 |   
|                  | 
  
 
   | 
  
 
  
   
    
     
	   | Status: | 
	   		           				(Frage) beantwortet    |    | Datum: |  14:44 Mo 13.12.2021 |    | Autor: |  senmeis |   
	   
	   Ich habe auch [mm] Omega(n^3) [/mm] gesehen. Ist dieses gleich wie [mm] O(n^3)?
 [/mm] 
 
      | 
     
    
   | 
  
 
 |   
|                          | 
   
 
   | 
  
 
  
   
    
     
	   | Status: | 
	   		           				(Antwort) fertig    |    | Datum: |  17:44 Mo 13.12.2021 |    | Autor: |  Infinit |   
	   
	   Hallo senmeis, 
 
es gibt hier unterschiedlice Notationen, die auch eine Aussage darüber enthalten, welche Größe wie schnell wächst. 
 
Diese unterschiedlichen Bezeichnungen findest Du  hier
 
Viele Grüße, 
 
Infinit
 
 
      | 
     
    
   | 
  
 
 |   
  
   |