static void Sortiere(string[] arr, MeinDel d, bool Reverse = false) { int len = arr.Length; for (int i = 1; i < len; i++) { for (int j = 0, stop = len - i; j < stop; j++) { if (Reverse ? !d(arr[j], arr[j + 1]) : d(arr[j], arr[j + 1])) { swap(j, j + 1); } } } void swap(int i, int j) { string temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } }
static void Main(string[] args) { string[] arr = { "Restmülltütenverschlusssicherungsdraht", "Beere", "Autopahnpolizist", "Tee", "Schifffahrt", "Holzbein", "Heeresstärke", "Erdbeere", "Selbstzerstörungsauslösungsschalterhintergrundbeleuchtungsglühlampensicherungshalterschraube", "Rindfleischetikettierungsüberwachungsaufgabenübertragungsgesetz", "Steuerentlastungsberatungsvorgesprächskoalitionsrundenvereinbarungen" }; Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine("\nunsortiert: \n"); Console.ResetColor(); Ausgabe(arr); MeinDel d = new MeinDel(AlaengerB); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("\nsortiert nach string Laenge: \n"); Console.ResetColor(); Sortiere(arr, d); Ausgabe(arr); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("\nReverse Sortierung String Laenge: \n"); Console.ResetColor(); Sortiere(arr, d, true); Ausgabe(arr); Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine("\nnach Anzahl der E's: \n"); Console.ResetColor(); d = AeB; Sortiere(arr, d); Ausgabe(arr); Console.ForegroundColor = ConsoleColor.DarkYellow; Console.WriteLine("\nnachAnzahl der E's reversed: \n"); Console.ResetColor(); Sortiere(arr, d, true); Ausgabe(arr); Console.ReadKey(); }