C# :: Aufgabe #203
4 Lösungen

Sortieralgorithmus (Konsole)
Anfänger - C#
von syneex
- 04.05.2018 um 10:44 Uhr
Guten Tag,
erstellen Sie ein Programm, welches ein Feld mit 10 Zufallszahlen (zwischen 1 und kleiner als 10) sortiert und ausgibt. Das Feld wird in der Main Methode deklariert und in einer anderen Methode mit Zufallszahlen gefüllt. Anschließend wird das unsortierte Feld ausgegeben. Danach soll das Feld sortiert und am Ende eben dieses sortierte Feld ausgegeben werden.
Todo:
- ZZ* erzeugen (Methode zz)
- unsortiertes Feld ausgeben (Methode ausgabe)
- Feld sortieren (Methode sort)
- sortiertes Feld ausgeben (Methode ausgabe)
Zusätzlich:
Man könnte eventuell die Länge des Arrays festlegen (siehe Anhang).
Ebenfalls könnte man die Ausgabe so formatieren, dass zwischen den einzelnen Zahlen jeweils ein kleiner Spielraum gelassen wird .
Um das ganze nun zu verfeinern, gäbe es die Möglichkeit die Zahlen Reichweite auf 1 - kleiner 100 zu erweitern.
*ZZ = Zufallszahl
Viel Erfolg :)
erstellen Sie ein Programm, welches ein Feld mit 10 Zufallszahlen (zwischen 1 und kleiner als 10) sortiert und ausgibt. Das Feld wird in der Main Methode deklariert und in einer anderen Methode mit Zufallszahlen gefüllt. Anschließend wird das unsortierte Feld ausgegeben. Danach soll das Feld sortiert und am Ende eben dieses sortierte Feld ausgegeben werden.
Todo:
- ZZ* erzeugen (Methode zz)
- unsortiertes Feld ausgeben (Methode ausgabe)
- Feld sortieren (Methode sort)
- sortiertes Feld ausgeben (Methode ausgabe)
Zusätzlich:
Man könnte eventuell die Länge des Arrays festlegen (siehe Anhang).
Ebenfalls könnte man die Ausgabe so formatieren, dass zwischen den einzelnen Zahlen jeweils ein kleiner Spielraum gelassen wird .
Um das ganze nun zu verfeinern, gäbe es die Möglichkeit die Zahlen Reichweite auf 1 - kleiner 100 zu erweitern.
*ZZ = Zufallszahl
Viel Erfolg :)
Lösungen:

using System; namespace Zahlen_Sortieren { class Program { static void Main(string[] args) { Console.BackgroundColor = ConsoleColor.DarkRed; Console.WriteLine(" "); Console.WriteLine(" Sort "); Console.WriteLine(" "); Console.BackgroundColor = ConsoleColor.Black; Console.WriteLine(); int[] numbers = getRandomNumber(setFieldLength(), 1, 100); Console.WriteLine(); printField(numbers); numbers = sortField(numbers); printField(numbers); Console.ReadKey(); } // hier wird die länge des arrays festgelgt, wobei die länge größer 0 sein muss. private static int setFieldLength() { int result; string s; do { Console.Write("Bitte Laenge des Feldes eingeben (groesser 0): "); s = Console.ReadLine(); } while (!Int32.TryParse(s, out result) || result <= 0); return result; } // sortieren des feldes private static int[] sortField(int[] numbers) { Array.Sort(numbers); return numbers; } // ausgabe des feldes in der konsole private static void printField(int[] numbers) { string temp = ""; foreach (int number in numbers) { temp += number + ", "; } Console.WriteLine("Field: " + temp.Substring(0, temp.Length-2)); } // befüllen des feldes mit zufallszahlen private static int[] getRandomNumber(int length, int lower, int upper) { Random r = new Random(); int[] temp = new int[length]; for (int i = 0; i < length; i++) { temp[i] = r.Next(lower, upper); } return temp; } } }

using System; namespace ConsoleBubbleSort { class Program { static readonly Random rnd = new Random(); static void Main(string[] args) { int[] array = CreateRandomArray(); PrintArray(array); BubbleSort(ref array); PrintArray(array); Console.ReadLine(); } static int[] CreateRandomArray(int min = 1, int max = 10, int length = 10) { int[] array = new int[length]; for (int i = 0; i < length; i++) { array[i] = rnd.Next(min, max); } return array; } static void PrintArray<T>(T[] array, char seperator = ',') { for (int i = 0; i < array.Length - 1; i++) { Console.Write($"{array[i]}{seperator}"); } Console.WriteLine(array[array.Length - 1]); } static void BubbleSort(ref int[] array) { for (int i = array.Length; i > 1; i--) { for (int j = 0; j < i - 1; j++) { int l = array[j]; int r = array[j + 1]; if (r < l) { array[j] = r; array[j + 1] = l; } } } } } }
Simple Bubblesort:
Die Main
C#-Code
Der Algorithmus zum erstellen von zufälligen Zahlen
C#-Code
Der Sortieralgorithmus:
C#-Code
Die Main

static void Main(string[] args) { Console.WriteLine("Anzahl der Zahlen eingeben: "); int countZahlen = Convert.ToInt32(Console.ReadLine()); List<int> zufallszahlen = ZufallszahlenErstellen(countZahlen); zufallszahlen.ForEach(Console.Write); Console.WriteLine(); List<int> sortierteListe = Sortieren(zufallszahlen); sortierteListe.ForEach(Console.Write); Console.ReadKey(); }
Der Algorithmus zum erstellen von zufälligen Zahlen

static List<int> ZufallszahlenErstellen(int anzahl) { Random rnd = new Random(); List<int> zufallszahlen = new List<int>(); for(int i = 0; i < anzahl; i++) { zufallszahlen.Add(rnd.Next(0, 10)); } return zufallszahlen; }
Der Sortieralgorithmus:

static List<int> Sortieren(List<int> unsortierteListe) { for(int k = 0; k < unsortierteListe.Count; k++) { for(int i = 0; i < unsortierteListe.Count-1; i++) { if(unsortierteListe[i] > unsortierteListe[i+1]) { int save = unsortierteListe[i]; unsortierteListe[i] = unsortierteListe[i + 1]; unsortierteListe[i + 1] = save; } } } return unsortierteListe; }
Hier eine Variante die nicht ganz der Aufgabenstellung entspricht,
da sie keine Methoden enthält, aber aufzeigt, wie man diese Aufgabe mittels LINQ
sehr schnell und komfortabel lösen kann.
C#-Code
da sie keine Methoden enthält, aber aufzeigt, wie man diese Aufgabe mittels LINQ
sehr schnell und komfortabel lösen kann.

using System; using System.Linq; namespace CS_Aufgabe_203_Sortieralgorithmus { class Program { static void Main(string[] args) { // 10 Zufallszahlen von 1 bis 9 var lstUnsorted = Enumerable.Range(1, 10).Select(x => new Random().Next(1, 9)).ToList(); // Ausgabe: unsortierte Liste mit Abstand zwischen den Zahlen lstUnsorted.Select(x => x + " ").ToList().ForEach(Console.Write); // Zeilenumbruch Console.WriteLine(); // Ausgabe: sortierte Liste mit Abstand zwischen den Zahlen lstUnsorted.OrderBy(x => x).Select(x => x + " ").ToList().ForEach(Console.Write); } } }