using System.Collections.Generic;
public static void Main()
private static void Button_Click()
string eingabe_text = "4 7 1 huhu 815 42";
List<string> eingabe_werte_liste = eingabe_text.Split(' ').ToList();
List<int> eingabe_werte_liste_alsZahl = new List<int>();
foreach (string einzelwert in eingabe_werte_liste)
int konvertierterWert = 0;
bool hatgeklappt = int.TryParse(einzelwert, out konvertierterWert);
eingabe_werte_liste_alsZahl.Add(konvertierterWert);
var sortierteListe = MergeSort(eingabe_werte_liste_alsZahl);
var sortierteWertealsText = string.Join(" ", sortierteListe);
Console.WriteLine(sortierteWertealsText);
private static List<int> MergeSort(List<int> unsorted)
List<int> left = new List<int>();
List<int> right = new List<int>();
int middle = unsorted.Count / 2;
for (int i = 0; i < middle;i++)
for (int i = middle; i < unsorted.Count; i++)
right = MergeSort(right);
return Merge(left, right);
private static List<int> Merge(List<int> left, List<int> right)
List<int> result = new List<int>();
while(left.Count > 0 || right.Count>0)
if (left.Count > 0 && right.Count > 0)
if (left.First() <= right.First())
result.Add(left.First());
left.Remove(left.First());
result.Add(right.First());
right.Remove(right.First());
result.Add(left.First());
left.Remove(left.First());
else if (right.Count > 0)
result.Add(right.First());
right.Remove(right.First());