GVA SUPPORT

Відповідь на запитання № 1334698043
Text:
	ФІО = GVA

 Запитання:/*
Тема: Методи сортування
Завдання: Розробити програму сортування методом "сортування злиттям". Програма повинна забезпечувати  введення чи генерацію вихідних даних і візуалізувати результати сортування.


*/
#include <iostream>
#include <stdio.h>
#define N 10
using namespace std;

void autoentermas(int a[], size_t length) {
        randomize();
        for (int i = 0 ; i < length ; i++)
        {
                a[i] = rand() % 40;
        }
        return ;
}
void printmas(int a[], size_t length) {
        for (int i = 0 ; i < length ; i++)
        {
                cout<<a[i]<<" ";
        }
        cout<<endl;
        return ;
}
void Merge(int Mas[], int left, int right, int medium)
{
    int j = left;
    int k = medium + 1;
    int count = right - left + 1;
 
    if (count <= 1) return;
 
    int *TmpMas = new int[count];
 
    for (int i = 0; i < count; i++)
    {
        if (j <= medium && k <= right)
        {
            if (Mas[j] < Mas[k])
                TmpMas[i] = Mas[j++];
            else
                TmpMas[i] = Mas[k++];
        }
        else
        {
            if (j <= medium)
                TmpMas[i] = Mas[j++];
            else
                TmpMas[i] = Mas[k++];
        }
    }
 
    j = 0;
    for (int i = left; i <= right; i++)
    {
        Mas[i] = TmpMas[j++];
    }

    delete[] TmpMas;
}
template <typename Item>
void MergeSort(Item a[], int l, int r,int realcount)
{
    int m;
 
    // Условие выхода из рекурсии
    if(l >= r) return;
 
    m = (l + r) / 2;
 
    // Рекурсивная сортировка полученных массивов
    MergeSort(a, l, m,realcount);
    MergeSort(a, m + 1, r,realcount);
    Merge(a, l, r, m);
    printmas(a,realcount);
}
int main(){
        int mas[N];
        autoentermas(mas, N);
        cout<<"CURRENT -> "; printmas(mas,N);
        MergeSort(mas,0,N,N);
        cout<<"RESULT  -> "; printmas(mas,N);
        system("pause");
        return 0;
}

====================================	
Ваша відповідь