www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Englisch
  Status Grammatik
  Status Lektüre
  Status Korrekturlesen
  Status Übersetzung
  Status Sonstiges (Englisch)

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Algorithmen und Datenstrukturen" - Alg entwerfen und Laufzeit bes
Alg entwerfen und Laufzeit bes < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Alg entwerfen und Laufzeit bes: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:54 Fr 08.05.2009
Autor: Tobus

Aufgabe
Geben sie einen Algorithmus an, der das folgende Problem möglichst effizient löst und schätzen sie seine Worst-Case-Laufzeit ab.

Gegeben: ist ein Feld mit n Zahlen [mm] a_{1}...a_{n} [/mm]
Gesucht: Zwei Indizes, so dass die Differenz [mm] a_{j}-a_{i} [/mm] maximal ist

Zum Algorithmus:
Ich würde behaupten dass der Quicksort hier sehr effizient ist. Ich lasse sortieren, nehme den Indizes der größten und kleinsten Zahl und habe somit eine maximale Differenz

Selber entworfen hab ich folgenden:
[mm] x=a_{1} [/mm]
[mm] y=a_{2} [/mm]

if x<y do nul;
  else x<->y (x und y vertauschen)
end if;

for i=3 to n do
  if [mm] a_{i}   if [mm] a_{i}>y [/mm] do [mm] y=a_{i}; [/mm] end if;
end for;

Somit habe ich in x das kleinste, in y das größte Element.

Wie ich auf die Laufzeit komme weiß ich leider nicht genau. Ich muss doch nur die Operationen, nicht die Vergleiche Zählen oder ?

Ich komme im
1. Absatz auf 2
2. Absatz auf max. 1
3. Absatz auf max. n-2
Operationen

Meine Laufzeit ist also kleiner als (n+1)

Richtig ?


        
Bezug
Alg entwerfen und Laufzeit bes: Antwort
Status: (Antwort) fertig Status 
Datum: 16:49 Fr 08.05.2009
Autor: Gilga

Ich kann darin leider nicht Quicksort erkennen.

Sotieren ist auch nicht nötig. Einfach das kleinste und größte Element sowie deren Indizes in einem Durchlauf suchen.

Komplexität O(n)

Bezug
                
Bezug
Alg entwerfen und Laufzeit bes: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:51 Fr 08.05.2009
Autor: Tobus

Die Sache mit dem Quicksort war nur allgemein gedacht,
meins ist natürlich kein Quicksort.
Genau nach dem kleinsten bzw größten Element suche ich ja auch in einem Durchlauf.
Würde meines, sowie die Laufzeitberechnung stimmen ?

Bezug
                        
Bezug
Alg entwerfen und Laufzeit bes: Antwort
Status: (Antwort) fertig Status 
Datum: 23:48 Fr 08.05.2009
Autor: Gilga

Wo werden denn in deinem Algorithmus die Indizes berechnet.
Komplexität ist Feldlänge*(Vergleiche + Zuweisungen)

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.englischraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]