С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
8 / 8 / 2
Регистрация: 04.12.2012
Сообщений: 130
1

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

27.01.2013, 19:36. Показов 854. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеет ли то что я написал что-то общее с 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);
}
оно то, конечно, работает но вот с скоростью работы я не уверен то ли получилось.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.01.2013, 19:36
Ответы с готовыми решениями:

Проверьте, пожалуйста, правильность составленного мной алгоритма)
Вот код: #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; int main() { FILE...

Проверьте правильность пожалуйста
Правильно ли я реализовал задание? Задание: В массиве Z(m) найти число чередований знака, то есть...

Пожалуйста, проверьте правильность
Вобщем вот просая задача скрин: мой вариант программы #include &lt;iostream.h&gt; #include...

Проверьте пожалуйста код на правильность !
2. Даны два вектора и найти угол между ними и модуль векторного произведения векторов X и Y. При...

0
27.01.2013, 19:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.01.2013, 19:36
Помогаю со студенческими работами здесь

Проверьте пожалуйста код на правильность ! ! !
2. Дан массив размера 5 x 6 с элементами целого типа. Написать программу для вычисления числа...

Пожалуйста, проверьте правильность программы
Всем здравствуйте, для решения задачи, я написала программу на языке Си, однако в Visual Studio у...

Проверьте пожалуйста правильность решения задачи и не могу понять тернарный оператор
Задача из книги Васильева А.Н. &quot;Самоучитель С++&quot; Глава 1-я. Задача №4. Не могу понять как работает...

проверьте пожалуйста правильность блок схемы алгоритма
program Project2; {$APPTYPE CONSOLE} uses SysUtils; const n=100; var a: array of integer;...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru