www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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
Dt. Schulen im Ausland: Mathe-Seiten:

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

Laufzeit von Quicksort: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 22:11 Di 09.05.2006
Autor: wetterfrosch

Aufgabe
Zeigen Sie, dass Quicksort bei Eingabe eines absteigend sortierten Arrays der Größe n eine Laufzeit von [mm] O(n^{2}) [/mm] benötigt.

QUICKSORT(l,p,r)
  if p < r  then
    q = PARTITION(l,p,r)
    QUICKSORT(l,p,q-1)
    QUICKSORT(l,q+1,r)


wobei PARTITION(l,p,r) gruppiert von l[p,...,r] ebtsprechend dem Pivotelement l[r], so dass links von q nur Elemente [mm] \le [/mm] l[r], und rechts von q nur Elemente [mm] \ge [/mm] l[r]

Hallo Forum,
ich hab ein Problem zu dieser Aufgabe, weil ich überhaupt nicht weiß, wie ich das zeigen soll. In einem Buch hab ich gelesen, dass man das mit der Substitutionsmethode zeigt, aber leider haben wir diese Methode nicht in der Vorlesung behandelt. Wie kann ich das denn sonst beweisen? Ich kenne nur die Mastermethode. Diese hab ich auch auf das problem angewendet, aber bei mir kommt für die Laufzeit T(n) = O(n) heraus und nicht [mm] O(n^{2}). [/mm]
Ich hab das so gemacht: Es gilt ja T(n) = T(n-1)+ T(0) + O(n) (das Pivotelement ist das kleinste, daher T(n-1) und T(0))
Nach der Anwendung der Mastermethode hab ich dann O(n) = [mm] omega(n^{0 + \epsilon}), [/mm] sei [mm] \epsilon [/mm] = 1.
Dann bekomme ich aber T(n) = O(n).
Ich weiß nicht, wie das sonst gehen soll.
Ich hoffe es kann mir jemand weiter helfen.
Danke vielmals,
wetterfrosch

        
Bezug
Laufzeit von Quicksort: Antwort
Status: (Antwort) fertig Status 
Datum: 23:50 Di 09.05.2006
Autor: Frank05


> QUICKSORT(l,p,r)
>    if p < r  then
>      q = PARTITION(l,p,r)
>      QUICKSORT(l,p,q-1)
>      QUICKSORT(l,q+1,r)

>  ich hab ein Problem zu dieser Aufgabe, weil ich überhaupt
> nicht weiß, wie ich das zeigen soll. In einem Buch hab ich
> gelesen, dass man das mit der Substitutionsmethode zeigt,
> aber leider haben wir diese Methode nicht in der Vorlesung
> behandelt. Wie kann ich das denn sonst beweisen? Ich kenne
> nur die Mastermethode. Diese hab ich auch auf das problem
> angewendet, aber bei mir kommt für die Laufzeit T(n) = O(n)
> heraus und nicht [mm]O(n^{2}).[/mm]
>  Ich hab das so gemacht: Es gilt ja T(n) = T(n-1)+ T(0) +

Du brauchst einen Faktor vor dem n für die Mastermethode. Das -1 spielt keine Rolle.

> O(n) (das Pivotelement ist das kleinste, daher T(n-1) und
> T(0))
>  Nach der Anwendung der Mastermethode hab ich dann O(n) =
> [mm]omega(n^{0 + \epsilon}),[/mm] sei [mm]\epsilon[/mm] = 1.

Wie kommst du auf die 0 ?

>  Dann bekomme ich aber T(n) = O(n).
>  Ich weiß nicht, wie das sonst gehen soll.
>  Ich hoffe es kann mir jemand weiter helfen.

Ich denke du verkopfst dich da viel zu sehr mit dem Master Theorem. Lass einfach mal die ganzen tollen Sätze weg und überleg dir was da passiert.

Erster Aufruf führt dazu, dass PARTITION aufgerufen wird. Dabei werden n-1 Vergleiche gemacht, um eine Aufteilung in eine n-1 elementige und eine 0-elementige Liste zu erledigen. Die 0-elementige interessiert nicht weiter, und jetzt überleg dir nochmal was passiert, wenn der zweite QUICKSORT Aufruf erfolgt. Wieviele Vergleiche werden benötigt? Wieviele Elemente verbleiben in der Liste (wird ja wieder nur eine).. und dann brauchst du nur noch die Summe über diese Vergleichsanzahlen bilden und bist fertig.

Mit Master Theorem brauchst du da nicht wirklich draufschiessen, weil es im worst-case eben gerade keine interessante Rekursion ist, sondern linear betrachtet werden kann. Einmal eine Schleife, um immer ein Element weniger zu betrachten, einmal eine Schleife für PARTITION und schon hast du intuitiv das [mm]n^2[/mm] begründet.

Bezug
                
Bezug
Laufzeit von Quicksort: Rückfrage
Status: (Frage) beantwortet Status 
Datum: 09:28 Do 11.05.2006
Autor: wetterfrosch

Hallo,
erstmal vielen Dank für deine Antwort. Ich hab mir folgendes überlegt:
Die Anzahl der Vergleiche beim 2.Quicksortaufruf sind n-2 oder? Ich vermute jetzt mal, dass die Anzahl der Vergleiche bei jedem Quicksortaufruf dich um 1 verringert, stimmt das?
Demzufolge ist dann die Gesamtanzahl der Vergleiche (n-1)+(n-2)+......+1 =  [mm] \summe_{i=1}^{n-1} [/mm] i =  [mm] \bruch{n(n-1)}{2}, [/mm] und das ist in [mm] Teta(n^{2}), [/mm] was zu zeigen war.
Ich hoffe, das stimmt so.
Viele Grüße,
wetterfrosch


Bezug
                        
Bezug
Laufzeit von Quicksort: richtig
Status: (Antwort) fertig Status 
Datum: 22:13 Do 11.05.2006
Autor: Bastiane

Hallo!

>  Die Anzahl der Vergleiche beim 2.Quicksortaufruf sind n-2

[daumenhoch]

> oder? Ich vermute jetzt mal, dass die Anzahl der Vergleiche
> bei jedem Quicksortaufruf dich um 1 verringert, stimmt
> das?

[daumenhoch]

>  Demzufolge ist dann die Gesamtanzahl der Vergleiche
> (n-1)+(n-2)+......+1 =  [mm]\summe_{i=1}^{n-1}[/mm] i =  
> [mm]\bruch{n(n-1)}{2},[/mm] und das ist in [mm]Teta(n^{2}),[/mm] was zu
> zeigen war.
>  Ich hoffe, das stimmt so.

Eigentlich hättest du doch:

[mm] \summe_{i=1}^n(n-i)=\sum_{i=1}^nn-\sum_{i=1}^ni=n^2-\bruch{n(n+1)}{2}=O(n^2) [/mm]

Aber du kannst die Summe natürlich auch "von hinten nach vorne" lesen. ;-)

Viele Grüße
Bastiane
[cap]


Bezug
                                
Bezug
Laufzeit von Quicksort: Danke
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 23:28 Do 11.05.2006
Autor: wetterfrosch

Hallo,
vielen Dank für deine Antwort :)
LG, wetterfrosch

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


^ Seitenanfang ^
www.vorhilfe.de