public static void Main()
for(int i=0;i<input.Length;i++) {
for(int i=0;i<input.Length;i++) {
Console.WriteLine(input[i]);
Console.WriteLine("Sorted:");
for(int i=0;i<input.Length;i++) {
Console.WriteLine(input[i]);
public static void MergeSort(int[] nums) {
int[] leftArr=new int[mid];
int[] rightArr=new int[numsLen-mid];
for(int i=mid;i<numsLen;i++) {
Merge(nums,leftArr,rightArr);
public static void Merge(int[] nums,int[] leftArr,int[] rightArr) {
int lCnt=0,rCnt=0,iCnt=0;
while(lCnt<leftArr.Length && rCnt<rightArr.Length) {
if(leftArr[lCnt]<=rightArr[rCnt]) {
nums[iCnt++]=leftArr[lCnt++];
nums[iCnt++]=rightArr[rCnt++];
while(lCnt<leftArr.Length) {
nums[iCnt++]=leftArr[lCnt++];
while(rCnt<rightArr.Length) {
nums[iCnt++]=rightArr[rCnt++];