www.mucker.at http://www.mucker.at Helmut Mucker de Sortieren durch Einfügen (Insertation Sort) http://www.mucker.at/2006//07#insertationsort <!-- amazon-search: Algorithmen Datenstrukturen --> <!-- amazon-mode: books --> <p> Eines der einfachen Sortierverfahren mit einer Laufzeit von O(n&sup2;), hier implementiert in Perl. Der Algorithmus lautet folgendermaßen: <ol> <li>Initialisiere eine leere Folge, sie nimmt die sortierten Elemente auf.</li> <li>Solange die unsortierte Folge nicht leer ist, entnimm das erste Element und füge es an der richtigen Position in die sortierte Folge ein.</li> </ol> <pre> #!/usr/bin/perl use strict; use warnings; my @array = (-99,67,14,82,99,18,21,78,98,33,10); my $first = 0; my $last = $#array; &PrintArray(); &InsertationSort(); sub InsertationSort { my ($r,$i,$j) = undef; foreach $i (2 ... $last) { $r = $array[$i]; $j = $i-1; while ($array[$j] > $r) { $array[$j+1] = $array[$j]; $j = $j-1; } $array[$j+1] = $r; &PrintArray(); } } sub PrintArray { foreach my $i (0 ... $#array) {print $array[$i]," ";} print "\n"; } sub Exchange { my ($i,$j) = @_; my $tmp = $array[$i]; $array[$i] = $array[$j]; $array[$j] = $tmp; } </pre> </p>