Форум программистов, компьютерный форум CyberForum.ru

Проверьте, пожалуйста, правильность алгоритма Timsort для связанных списков! - C++

Восстановить пароль Регистрация
 
popelyuk
 Аватар для popelyuk
8 / 8 / 1
Регистрация: 04.12.2012
Сообщений: 130
27.01.2013, 19:36     Проверьте, пожалуйста, правильность алгоритма Timsort для связанных списков! #1
Имеет ли то что я написал что-то общее с Timsort ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
template <typename list_type>
list_type* MergeLists(list_type* list_1, list_type* list_2) {
    list_type *out_front, *out_curr;
    if(*list_1 < *list_2) out_front=list_1, list_1=list_1->next;
    else out_front=list_2, list_2=list_2->next;
    out_curr=out_front;
    while(list_1&&list_2) {
        if(*list_1 < *list_2) out_curr->next=list_1, list_1=list_1->next;
        else out_curr->next=list_2, list_2=list_2->next;
        out_curr=out_curr->next;
    }
    out_curr->next=list_1?list_1:list_2;
    return out_front;
}
 
template <typename node_type> void Timsort(node_type* &front) {
    if(front==0) throw exception(EX_LOC,EX_INCORRECT_ARGUMENT);
    node_type *curr(front), *prev(0), *buf;
    while(curr->next) {
        if(*curr < *curr->next) curr=curr->next;
        else {
            buf=curr->next, curr->next=0; curr=buf; // snip list
            if(prev) front=MergeLists(front, prev); // merge lists
            prev=curr;
        }
    }
    if(prev) front=MergeLists(front, prev);
}
оно то, конечно, работает но вот с скоростью работы я не уверен то ли получилось.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2013, 19:36     Проверьте, пожалуйста, правильность алгоритма Timsort для связанных списков!
Посмотрите здесь:

Релизация связанных списков C++
Пожалуйста, проверьте правильность C++
C++ создать модель файловой системы на основе связанных списков
C++ Проверьте, пожалуйста, правильность составленного мной алгоритма)
Реализация алгоритма Рабина-Карпа для двух однонаправленных линейных списков C++
C++ Проверьте пожалуйста код на правильность !
C++ Проверьте пожалуйста код на правильность ! ! !
C++ Проверьте правильность пожалуйста

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 14:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru