![]() |
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 |
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. |
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? |
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? |
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); |
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:
dann kann man mit einer einfachen Schleife
zufall: Array [0..8] of integer;
Delphi-Quellcode:
den Index des kleinsten Elementes bestimmen.
minidx:=0;
for i:=1 to 8 do if Zufall[i]<Zufall[minidx] then minidx:=i; Bei der Ausgabe werden dann zunächst alle Elemente ohne das kleinste nacheinander ausgegeben, und zum Schluß dann das kleinste angehängt.
Delphi-Quellcode:
Ich denke, da kommt man mit einem Array locker aus.
for i:=0 to 8 do
if i<>minidx then Liste.add(inttostr(Zufall[i])); Liste.add(inttostr(Zufall[minidx])); Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz