3 Zahlen Sortieren mit PL/SQL

Ein kleine Übung:

Schreibe einen Algorithmus um 3 Zahlen zu sortieren – die Ausgabe soll der Größe nach aufsteigend sein – und implementiere diesen in einer Sprache Deiner Wahl.

Hier ein Nassi-Shneiderman-Diagramm dazu:

13_zahlen_sortieren

 

Meine funktionierende Implementierung in PL/SQL sieht so aus:

DECLARE
  z1 NUMBER := 2;
  z2 NUMBER := 2;
  z3 NUMBER := 1;

  gz NUMBER; -- große Zahl
  mz NUMBER; -- mittlere Zahl
  kz NUMBER; -- kleine Zahl
BEGIN
  IF ( z1 > z2 ) THEN -- erste Verzweigung -> JA
    IF ( z1 > z3 ) THEN -- zweite Verzweigung -> JA
      gz := z1;

      IF ( z2 > z3 ) THEN -- dritte Verzweigung -> JA
        mz := z2;
        kz := z3;
      ELSE -- dritte Verzweigung -> NEIN
        mz := z3;
        kz := z2;
      END IF;
    ELSE -- zweite Verzweigung -> NEIN
      mz := z1;
      gz := z3;
      kz := z2;
    END IF;
  ELSE -- erste Verzweigung -> NEIN
    IF ( z1 > z3 ) THEN -- zweite Verzweigung -> JA
      mz := z1;
      gz := z2;
      kz := z3;
    ELSE -- zweite Verzweigung -> NEIN
      kz := z1;

      IF ( z2 > z3 ) THEN -- dritte Verzweigung -> JA
        gz := z2;
        mz := z3;
      ELSE -- dritte Verzweigung -> NEIN
        gz := z3;
        mz := z2;
      END IF;
    END IF;
  END IF;

  dbms_output.put_line ( z1 || ' ' || z2 || ' ' || z3 || ' (Original)' );
  dbms_output.put_line ( kz || ' ' || mz || ' ' || gz || ' (Sortiert)' );
END;

 

Hier ein PDF mit interessanten Algorithmen u.a. zu Sortier-Funktionen.

Quelle: Nassi Shneiderman Diagramme.

Print Friendly, PDF & Email

Schreibe einen Kommentar