AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Quicksort mit Median of Three

Ein Thema von 3_of_8 · begonnen am 10. Apr 2006 · letzter Beitrag vom 10. Apr 2006
Antwort Antwort
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#1

Quicksort mit Median of Three

  Alt 10. Apr 2006, 20:21
Morgen.

Also bei einer Übungsaufgabe der Uni Passau (Kurs Programmieren 1) heißt es:

"Implementieren sie QuickSort bei Arrays. Verwenden sie dazu das Median of Three Pivot."

Was genau kann ich mir darunter vorstellen? Eine Beschreibung würde ich mir wünschen, da ich diese Aufgabe vor allem mache, um herauszufinden, ob ich schon für Programmieren II geeignet bin, und daher die Vorlesung, in der das erörtert wurde, nicht besucht habe.

Ein eventueller Pseudocode wäre auch nicht schlecht, aber nicht unbedingt nötig.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Quicksort mit Median of Three

  Alt 10. Apr 2006, 20:25
http://de.wikipedia.org/wiki/Quicksort

da steht bei Laufzeit:

Zitat:
Ein Ansatz, um worst-case-Laufzeiten zu verhindern, ist, als Pivotelement ein zufällig bestimmtes Element zu wählen. Bei diesem randomisierten Quicksort ist die Wahrscheinlichkeit, dass das Pivotelement in jedem Teilungsschritt so gewählt wird, dass sich die worst case-Laufzeit ergibt, extrem gering, so dass man praktisch von einer Komplexität von O(n·log(n)) ausgehen kann. Eine andere Möglichkeit ist die Verwendung des Medians von z.B. drei zufällig gewählten Elementen. Durch geschickte Wahl des Pivotelementes kann man aber nur das mittlere schlechteste Verhalten verbessern. Vollständig verhindern kann man das Eintreten des Worst Cases jedoch nicht.
Über google solltest du vom prinzip bis zu vollständigen Implementierungen alles finden
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Quicksort mit Median of Three

  Alt 10. Apr 2006, 22:07
Hmm, müsste man mal bei Wiki eventuell verbessern. Grundsätzlich ist das randomisierte Quicksort rein rechnerisch Optimal, da der Worstcase keine 'normale' Folge von Zahlen ist, sonden eben zufällig, also in der Praxis nicht zu erwarten.

In der Praxis ist der Overhead der Random-Funkion jedoch zu hoch, um die theoretisch möglichen Performancevorteile in bare Münze zu verwandeln. Das Median Of Three Verfahren nimmt nur den Mittelwert des linken, mittleren und Rechten Elements (Würde man diese zufällig wählen, wäre der Worstcase genauso warscheinlich, wie die des einfachen randomized Quicksort). Die relativ einfache Optimierung verbessert das Laufzeitverhalten um 3-10%.

Mit dem Median Of Three-Verfahren wird der Worstcase (sortierte Listen) vermieden.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz