pl/sql-bubble-sort

okay, ich bin, schlagen mich bis über diese. Ich bin zum laden brauchen eine Reihe in der Menschen, die letzten Namen in einer Tabelle gespeichert. Dann Sortieren Sie die Nachnamen und drucken Sie diese in alphabetischer Reihenfolge. Dies muss getan werden mit der bubble-sort-Algorithmus.

hier ist was ich bisher

CREATE OR REPLACE PROCEDURE TEAM_TABLE_SORT AS
  TYPE player_Name_type IS TABLE OF databasename.team.player%type
  INDEX BY PLS_INTEGER ;
  player_name player_Name_type;
  i integer := 1;
  temp integer;

BEGIN

  FOR player_names IN (SELECT * FROM marshall.team )
  LOOP
    player_name(i) := player_names.player;
    DBMS_OUTPUT.PUT_LINE(i|| ' - ' ||chr(9) || player_name(i) ) ;
    i := i + 1 ;
  END LOOP

All dies wirklich bedeutet ist, drucken Sie die Namen. Ich kann es nicht Sortieren. Ich bin nicht versuchen, etwas auf diese

TYPE player_Name_type IS TABLE OF  %type INDEX BY varchar2(20) ;
aux player_Name_type;
i integer := 1;
v_current is table of aux
swapped BOOLEAN := TRUE;

BEGIN

  FOR aux IN (SELECT * FROM )
  LOOP
    DBMS_OUTPUT.PUT_LINE(i|| ' - ' ||chr(9) || aux.player);
    i := i + 1 ;
  END LOOP;

  v_current := aux.first;
  WHILE(swapped)
  LOOP
    swapped := FALSE;

    FOR I IN 1..(aux.count-2) LOOP
      IF aux(i) > aux(I+1) THEN
         v_current := aux(i+1);
         aux(I+1) := aux(i);
         aux(i) :=  v_current;
      END IF;
      swapped := TRUE;

    END LOOP;

  END LOOP;

FOR aux IN (SELECT * FROM    LOOP

  DBMS_OUTPUT.PUT_LINE(i|| ' - ' ||chr(9) ||aux.player);
  i := i + 1 ;
END LOOP;
  • ORDER BY lastname =)
  • Warum müssen Sie verwenden, bubble-sort?
  • Dies ist eine sehr schlechte Hausaufgaben Frage - erfordern Sie, um zu implementieren, etwas, was, wenn Sie waren zu versuchen, diese in der realen Welt, Sie wäre sofort "gehen lassen" (oder zumindest geschickt, um re-education camp) 🙂
  • "Immer noch nichts!! bitte helfen Sie mir" ist nicht die Art zu Fragen für weitere Hilfe...
  • das problem kann sein, dass Ihre "getauscht := TRUE' - Anweisung muss VOR 'END IF', nicht darunter. Verschieben, dass eine Aussage und sehen, ob es hilft.
  • Adams, bitte Sag mir, du bist sarkastisch.
  • Dies ist eine sehr gute Hausaufgaben Frage. Der Punkt, dass bubblesort in der Zuordnung, damit die Schüler lernen, die feineren Punkte von PL/SQL wie Schleifen und array-manipulation. Ja, ORDER BY ist der richtige Weg, dies zu tun im wirklichen Leben, aber das hilft nicht viel, wenn das Ziel ist, sich Kompetenzen in PL/SQL.
  • Bannister: NÖ. Die Implementierung eines array-Algorithmus ist eine Gelegenheit, um mehr als nur einen kurzen Einblick in die Sprache. Anstatt zum nachschlagen der syntax für das erstellen von Prozeduren, Deklaration von Variablen und Kontrollstrukturen verwenden jedes mal, wenn Sie müssen zum erstellen von Prozeduren, die Schüler sind gezwungen, sich hinzusetzen und tatsächlich lernen, PL/SQL. Mein Kommentar war nicht gut formuliert, so dass ich aktualisiert.
  • Kemp "Noch nichts..." war in der ursprünglichen Bearbeiten, ich vermute, der OP bedeutete etwas entlang der Linien von "ich versuchte, funktionierte nicht, ich versuchte B, es funktioniert immer noch nicht...", anstatt ungeduldig mit den mangelnden Antworten

InformationsquelleAutor user496698 | 2010-11-04
Schreibe einen Kommentar