Die Webseiten der Fachschaft Informatik am ERG Saalfeld


sort (2. Teil)

Um eine Liste zu sortieren, verwendet man den Befehl sort. Diese sortiert die Liste standardmäßig in lexikografischer Reihenfolge. Hier wird diese Liste von Zahlen nach der Größe sortiert.
 

Programm

use strict;
use warnings;

my @feld = ();

for (my $i = 0; $i < 80; $i++) {
    $feld[$i] = int(rand(100));
}

for (my $i = 0; $i < 80; $i++) {
    print $feld[$i], ' ';
}
print "\n\n";


@feld = sort {$a <=> $b} @feld;

for (my $i = 0; $i < 80; $i++) {
    print $feld[$i], ' ';
}
print "\n";


__END__

 

Der Aufruf sah bei mir so aus:

 

Aufgaben

  1. Bringen Sie das Programm zum Laufen.
  2. Kommentieren Sie das Programm.
  3. Ergänzen Sie das Programm um eine Überschrift.
  4. Ändern Sie das Programm so ab, dass die Anzahl der zu sortierenden Zahlen als Parameter übergeben wird.
  5. Ändern Sie das Programm so ab, wenn der Parameter aus der letzten Aufgabe nicht übergeben wird, dass die Anzahl der zu sortierenden Zahlen 60 ist.
  6. Bestimmen Sie für verschiedene Anzahlen n die zum Sortieren nötige Zeit t. Überprüfen Sie, ob  t ~ n * log n  ist.
  7. Ändern Sie die Zeile mit dem 'sort' so ab: @feld = sort {$b <=> $a} @feld;   Testen Sie das Programm.
  8. Informieren Sie sich im Netz über die Spezialvariablen $a und $b.
  9. Informieren Sie sich im Netz über die Vergleichsoperatoren  <=> (spaceship operator)   und  cmp .

 

Weblinks zum Raumschiff-Operator

 

zurück


© ERG Saalfeld   -   Hans-Dietrich Kirmse   17.08.2017