Momentan kann der Benutzer Zahlen in die ListBox eingeben, und ich möchte, dass die ListBox nach der Bubble-Sortierung sortiert wird, wenn auf eine Sortier-Checktaste geklickt wird. Es gibt jedoch nur die Indexnummer aus, z. 0,1,2,3 ... Ich darf keine Array oder Container nur die Items Property und Parsing und Converting verwenden.Bubble sort funktioniert nicht
private void sorted()
{
int a = Convert.ToInt32(lstHoldValue.Items.Count);
int temp;
for (int i = 0; i < a; i++)
{
for (int j = i + 1; j < a; j++)
{
if (Convert.ToInt32(lstHoldValue.Items[i]) >
Convert.ToInt32(lstHoldValue.Items[j]))
{
temp = Convert.ToInt32(lstHoldValue.Items[i]);
(lstHoldValue.Items[i]) = Convert.ToInt32(lstHoldValue.Items[j]);
(lstHoldValue.Items[j]) = temp;
}
}
}
lstHoldValue.Items.Clear();
for (int i = 0; i < a; i++)
{
Convert.ToInt32(lstHoldValue.Items.Add("\t" + i));
}
}
Nun, am Ende Sie klar Ihre Liste sortieren und dann fange an, Indizes von i zu a hinzuzufügen. Was genau versuchen Sie mit dem letzten Zyklus? –
Sie löschen Ihre Listbox (und verlieren dabei ihre Werte) und fügen Schleifenindizes hinzu (das "i" in Ihrer letzten Schleife); Auch "Items.Count" ist bereits ein int, keine Notwendigkeit, es zu konvertieren – Sehnsucht
Auch Algorithmus ist ich denke falsch - Blase Sortierung bedeutet Sammlung zu überprüfen, solange Sie keine Änderung der Reihenfolge machen; Sie schleifen die Sammlung einmal und in der inneren Schleife als Rest der Sammlung - es scheint nicht die richtige Implementierung der Blasensortierung zu sein. – smartobelix