Algorithmensammlung: Sortierverfahren: Quicksort

Aus Wikibooks

Wechseln zu: Navigation, Suche

Algorithmensammlung: Sortierverfahren

[Bearbeiten] Quicksort

Quicksort wird gemeinhin als das beste Sortierverfahren in der Praxis betrachtet. Während seine Laufzeit im schlechtesten Fall \mathcal{O}(n^2) beträgt, erreicht es eine mittlere Laufzeit von \mathcal{O}(n\cdot \log(n)) und ist damit nahezu optimal. Der Algorithmus arbeitet nach dem "Teile und Herrsche"-Prinzip.

Für weitere Informationen siehe Wikipedia-logo.png Quicksort.

[Bearbeiten] Perl

sub quicksort {
    if(!@_) {
    	return ();
    }
    else {
    	return (quicksort(grep { $_ < $_[0] } @_[1..$#_]),
    		$_[0],
    		quicksort(grep { $_ >= $_[0] } @_[1..$#_]));
    }
}

[Bearbeiten] Python

def quicksort(liste):
    if len(liste) <= 1:
        return liste
    else:
        return quicksort(filter(lambda x: x < liste[0], liste[1:])) + \
               [ liste[0] ] + \
               quicksort(filter(lambda x: x >= liste[0], liste[1:]))
Persönliche Werkzeuge