Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   sortieralogrithmus komplex (https://www.delphipraxis.net/155541-sortieralogrithmus-komplex.html)

marc0902 27. Okt 2010 20:36

sortieralogrithmus komplex
 
hallo leute, folgende frage:

ich habe eine listbox (als array ausgabe) mit unsortierten zufallszahlen und genau die kleinste zahl in der 1.listbox mit der zahlenfolge der unsortierten zufallszahlen soll durch einen sortiervorgang ans ende der zahlenfolge in einer zweiten listbox ausgegeben werden.

also suche kleinste zahl und stelle sie an die noch unsortierten zahlen hinten an in der 2. listbox.

also brauch ich doch drei arrays?!

eins als eingabe der unsortierten zahlen, eins sortiert was nicht ausgegeben wird, wo er sich die erste zahl nimmt, und eins wo er die kleinste zahl löscht und sie ans ende setzt.


oder lieg ich falsch?
wie lautet der quelltext?
grüße

Satty67 27. Okt 2010 21:04

AW: sortieralogrithmus komplex
 
Da müsste doch nur die kleinste Zahl durch einen Schleifendurchlauf ermittelt werden und hinten angehängt. Ginge alles mit der ersten und einzigen Listbox.

Wobei je nach Anwendungszweck ein internes Array zur Trennung von Anzeige und Daten empfehlenswert sein könnte.

marc0902 27. Okt 2010 21:09

AW: sortieralogrithmus komplex
 
na ich brauche 2 listboxen, weil in die erste ja nur die zufallszahlen kommen.

wie aber sortiere ich das mit der kleinsten zahl nach hinten?
quelltext?

Bummi 27. Okt 2010 21:13

AW: sortieralogrithmus komplex
 
bin ich heute schwer von Begriff?
Die Anforderung ist die unsortierten Zahlen aus Listbox1 sortiert (an Listbox2 anzuhängen)/ in Listbox2 einzutragen?
Oder Doch nur die kleinste Zahl auf Listbox1 an die Listbox2 anhängen?

Satty67 27. Okt 2010 21:14

AW: sortieralogrithmus komplex
 
Dann kopiere Inhalt der ersten Listbox mit assign in die zweite Listbox. Danach mit der zweiten weiter, wie eben beschrieben. (PS: Falls zweite doch sortiert sein soll, die Listbox kann selber sortieren)

@Bummi:

glaube er will nur sortieren, um den kleinsten Eintrag zu finden (wofür eine Sortierung aber eigentlich nicht nötig ist)

// temporäre Signatur:
Code:
string smallest = "";
foreach (string item in   listBox1.Items)
{
   if ((smallest == "") || (item.CompareTo(smallest) < 0))
      smallest = item;
}
listBox1.Items.Add(smallest);

p80286 28. Okt 2010 11:28

AW: sortieralogrithmus komplex
 
Da liegt wohl die übliche Vermengung von Berechnung und Darstellung vor.
Wenn es ein array mit Zufallszahlen gibt, sagenwir mal
Delphi-Quellcode:
zufall: Array [0..8] of integer;
dann kann man mit einer einfachen Schleife
Delphi-Quellcode:
minidx:=0;
for i:=1 to 8 do
  if Zufall[i]<Zufall[minidx] then minidx:=i;
den Index des kleinsten Elementes bestimmen.

Bei der Ausgabe werden dann zunächst alle Elemente ohne das kleinste nacheinander ausgegeben, und zum Schluß dann das kleinste angehängt.

Delphi-Quellcode:
for i:=0 to 8 do
  if i<>minidx then Liste.add(inttostr(Zufall[i]));
  Liste.add(inttostr(Zufall[minidx]));
Ich denke, da kommt man mit einem Array locker aus.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:43 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