Guten Tag zwischen den Jahren.
Ich habe bisher als Hobbyst in vb.net programmiert. Nun versuche ich in C# kleine Anwendungen zu
realisieren; und schon stehe ich vor einem Berg. Ich möchte, dass die Strings im untenstehenden Code
sortiert werden. Allerdings nicht mit der Funktion 'Array.Sort(xxx)'. Übrigens, die Sortierung von
Zahlen mittels dem QuickSort habe ich zum Laufen gebracht - mit Strings nicht. Was mache ich falsch ?
Ich hoffe, dass ich im richtigen Forum bin, denn das ist meine erste Anfrage.
Vorab vielen Dank.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71:
| private void btnQuickSort_Click ( object sender , EventArgs e ) { string [] sortDaten = new string [10]; int zz = 1; sortDaten [zz++] = "Katze "; sortDaten [zz++] = "Hund "; sortDaten [zz++] = "Bär "; sortDaten [zz++] = "Wolf "; sortDaten [zz++] = "Adler ";
listBox1 .Items .Clear ( ); for ( zz = 1 ; zz < 6 ; zz++ ) listBox1 .Items .Add ( " -> " + sortDaten [zz] );
QuickSort ( sortDaten , zz , List );
listBox1 .Items .Add ( "-------- sortiert zurück -----------" );
for ( zz = 1 ; zz < 6 ; zz++ ) listBox1 .Items .Add ( " --> " + sortDaten [zz] );
MessageBox .Show ( " END " , " TEST " ); Application .Exit ( ); }
private void QuickSort ( List<string> sortDaten , int left , int right ) { int i = left; int j = right; string leftString = sortDaten [i]; string rightString = sortDaten [j]; double pivotValue = ((left + right) / 2); string middle = sortDaten [Convert .ToInt32 ( pivotValue )]; string temp = null; while (i <= j) { while ( sortDaten [i] .CompareTo ( middle ) < 0 ) { i++; leftString = sortDaten [i]; } while ( sortDaten [j] .CompareTo ( middle ) > 0 ) { j--; rightString = sortDaten [j]; } if (i <= j) { temp = sortDaten [i]; sortDaten [i++] = sortDaten [j]; sortDaten [j--] = temp; } } if (left < j) { QuickSort ( sortDaten , left , j ); } if (i < right) { QuickSort ( sortDaten , i , right ); } } |
Moderiert von
Kha: C#-Tags hinzugefügt