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 ); } } |