Thema: Delphi array sortieren!!!?

Einzelnen Beitrag anzeigen

Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.757 Beiträge
 
Delphi 10.4 Sydney
 
#25

Re: array sortieren!!!?

  Alt 6. Jan 2009, 10:25
Ich würde es so lösen:

Deine zulässigen Werte sind 1..15.


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  a,b : TByteArray;
  i,j: Integer;
begin
  randomize;
  setLength(b,24);
  for i:=0 to high(b) do
    b[i]:=random(15)+1;
  memo1.lines.add('Ausgabe Array b');
  ausgabe(b);
  setLength(a,4);
  // Übertragung von b[0],b[6],b[12] und b[18] in das Array a
  for i:=0 to high(a) do
   a[i] := b[i*6];

  memo1.lines.add('Ausgabe Array a');
  ausgabe(a);

  bubbleSort(a);

  memo1.lines.add('Ausgabe Array a nach der Sortierung');
  ausgabe(a);
  // zweihhöchster und höchster Wert aus a
  for i:=2 to 3 do
    begin
      for j:=0 to 3 do
        if a[i] = b[j*6] then
          b[j*6] := 0; // warum 0, weil 0 ein nicht zulässiger Wert ist.
    end;
  memo1.Lines.add('Ausgabe Array b nach der Ersetzung der zwei höchsten Werte aus Array A');
  ausgabe(b);
  bubbleSort(b);
  memo1.Lines.add('Ausgabe Array b nach der Sortierung');
  ausgabe(b);
end;
wobei TByteArray so ausschaut
Delphi-Quellcode:
:
type
  TByteArray = Array of Byte;
und die Signatur von bubbleSort so:
procedure TForm1.bubbleSort(data:TByteArray); Hier ein Beispieldurchlauf:
Code:
Ausgabe Array b
  5 12  3 10  5  2  8 13 12 12 13  9  2  8  9 12 12 14  1  5  6  5  1  1
Ausgabe Array a
  5  8  2  1
Ausgabe Array a nach der Sortierung
  1  2  5  8
Ausgabe Array b nach der Ersetzung der zwei höchsten Werte aus Array A
  0 12  3 10  5  2  0 13 12 12 13  9  2  8  9 12 12 14  1  5  6  5  1  1
Ausgabe Array b nach der Sortierung
  0  0  1  1  1  2  2  3  5  5  5  6  8  9  9 10 12 12 12 12 12 13 13 14
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat