AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

array sortieren!!!?

Offene Frage von "AlexanderBrade"
Ein Thema von AlexanderBrade · begonnen am 5. Jan 2009 · letzter Beitrag vom 6. Jan 2009
Antwort Antwort
Seite 3 von 3     123   
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#21

Re: array sortieren!!!?

  Alt 6. Jan 2009, 09:30
Zitat von Uwe Raabe:
1) vertausche vor dem ersten Sortieren folgende Array-Werte: B[1] <-> B[6], B[2] <> B[12], B[3] <> B[18]

2) sortiere nun die ersten vier Array-Werte B[0]..B[3] (der größte soll in B[0] stehen)

3) sortiere dann die letzten 21 Array-Werte B[2]..B[23] (der größte soll in B[2] stehen)

Nun hast die in B[0]..B[4] die gewünschten Werte stehen.
Und 1. könntest du dir sparen, wenn du die Werte von 0, 6, 12 und 18 bereits beim Einlesen in das Array an die ersten Positionen setzt und anschließend alle anderen Werte...
  Mit Zitat antworten Zitat
AlexanderBrade

Registriert seit: 14. Dez 2008
189 Beiträge
 
Delphi 2005 Personal
 
#22

Re: array sortieren!!!?

  Alt 6. Jan 2009, 09:46
Wie aber sortier man nun lediglich einen bestimmten Teil des Feldes? z.B. von B[0] bis B[3]?
Wie muss dabei der BubbleSort aufgebaut sein?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#23

Re: array sortieren!!!?

  Alt 6. Jan 2009, 10:04
Die Grenzen ensprechend setzen. Bei diesem Beispiel wäre eine festgecodede Sortierung natürlich sinnvoller
Markus Kinzler
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#24

Re: array sortieren!!!?

  Alt 6. Jan 2009, 10:19
Lehrer denken sich schon lustige Dinge aus. Ich frage mich wie die Aufgabenstellung dazu aussah...
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 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
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz