Udemy: Master Coding Interview - Merge Sort - #175

Run Settings
LanguageC#
Language Version
Run Command
using System; class MainClass { static void Main() { int[] numbers = {99, 44, 6, 2, 1, 5, 63, 87, 283, 4, 0}; //6, 8, 7 //6, 8, 8 Console.WriteLine(ToString(numbers)); numbers = MergeSort(numbers); Console.WriteLine(ToString(numbers)); } public static int[] MergeSort(int[] array) { if (array.Length == 1) { return array; } // Split Array into right and left int[] left = new int[array.Length / 2]; int[] right = new int[array.Length - array.Length / 2]; for (int i = 0; i < array.Length; i++) { if (i < array.Length / 2) { left[i] = array[i]; } else { right[i - array.Length / 2] = array[i]; } } return Merge(MergeSort(left), MergeSort(right)); } public static int[] Merge(int[] left, int[] right) { int[] merged = new int[left.Length + right.Length]; int index = 0; int leftIndex = 0; int rightIndex = 0; while (leftIndex < left.Length || rightIndex < right.Length) { if (leftIndex == left.Length) { merged[index++] = right[rightIndex++]; } else if (rightIndex == right.Length) { merged[index++] = left[leftIndex++]; } else { if (left[leftIndex] < right[rightIndex]) { merged[index++] = left[leftIndex++]; } else { merged[index++] = right[rightIndex++]; } } } return merged; } public static string ToString(int[] array) { string s = "{"; for (int i = 0; i < array.Length; i++) { if (i > 0) { s += ", "; } s += array[i]; } s += "}"; return s; } }
Editor Settings
Theme
Key bindings
Full width
Lines