public static void Main()
double[] arr = Console.ReadLine().Split(' ').Select(double.Parse).ToArray();
Console.WriteLine("Сортирания масив: ");
MergeSort(arr, 0, arr.Length - 1);
Console.Write($"Sum= {sum}");
static void MergeSort(double[] arr, int start, int end)
if (start >= end) return;
int middle = (start + end) / 2;
MergeSort(arr, start, middle);
MergeSort(arr, middle + 1, end);
CompareAndSort(arr, start, middle, end);
static void CompareAndSort(double[] arr, int start, int middle, int end)
double[] sortedArr = new double[arr.Length];
int left_tmp = start, left_arr = start, middle_arr = middle + 1;
while (left_arr <= middle && middle_arr <= end)
if (arr[left_arr] > arr[middle_arr])
sortedArr[left_tmp] = arr[middle_arr];
sortedArr[left_tmp] = arr[left_arr];
while (left_arr <= middle)
sortedArr[left_tmp] = arr[left_arr];
while (middle_arr <= end)
sortedArr[left_tmp] = arr[middle_arr];
for (int i = start; i <= end; i++)