Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2015, 20:27   #1
Никита757
Пользователь
 
Регистрация: 14.05.2015
Сообщений: 57
По умолчанию [C++]: Прошу помочь написать комментарии к задаче о сортировке массива методом слияния

Не можете написать комментарии к сортировке слиянием? не могу понять его алгоритм работы, код рабочий
Код:
// Сортировка слиянием
Node* MergeSort(Node *list)
{
    Node *result;
    if (list == NULL || list->next == NULL)
    {
        result = list;
    }
    else
    {
        int count = 0;
  
        Node *tmp = list;
        while (tmp != NULL)
        {
            count++;
            tmp = tmp->next;
        }
  
        Node *left = list, *right = NULL;
        tmp = list;
        int i = 0;
        while (tmp != NULL)
        {
            i++;
            if (i == count / 2)
            {
                right = tmp->next;
                tmp->next = NULL;
            }
            tmp = tmp->next;
        }
  
        Node *h1 = MergeSort(left),
            *h2 = MergeSort(right);
  
        result = Merge(h1, h2);
    }
  
    return result;
}
  
// Сортировка слиянием: объединение двух списков
Node* Merge(Node *left, Node *right)
{
    if (left == NULL)
        return right;
    else if (right == NULL)
        return left;
  
    Node *result = NULL;
    Init(result);
  
    if (left->data <= right->data)
    {
        result = left;
        result->next = Merge(left->next, right);
    }
    else
    {
        result = right;
        result->next = Merge(left, right->next);
    }
  
    return result;
   
}

Последний раз редактировалось Вадим Мошев; 28.12.2015 в 20:30.
Никита757 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
комментарии zxzxz Помощь студентам 0 19.03.2013 14:28
комментарии СИ Oleg3 Помощь студентам 4 19.09.2012 13:41
комментарии Shinobig Помощь студентам 5 17.01.2012 14:54