С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
popelyuk
8 / 8 / 1
Регистрация: 04.12.2012
Сообщений: 130
#1

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

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

Имеет ли то что я написал что-то общее с 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2013, 19:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверьте, пожалуйста, правильность алгоритма Timsort для связанных списков! (C++):

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

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

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

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

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2013, 19:36
Привет! Вот еще темы с ответами:

Реализация алгоритма Рабина-Карпа для двух однонаправленных линейных списков - C++
Здравствуйте! Собственно, вопрос находится в заголовке: у меня описано два списка, надо этим алгоритмом найти количество вхождений первого...

Релизация связанных списков - C++
Прошу администрацию извинить меня (я только первый день на форуме), аналогичная тема размещена в &quot;С++ Builder&quot; - не знал куда правильнее...

Объединение двух связанных списков (нужен совет) - C++
шаблон ListNode #pragma once // оголошення, щоб зробити другом template&lt; typename NODETYPE &gt; class List; // шаблон класу ...

Проверьте правильность - C++
Создайте условный оператор (if), который присваивал бы x значение x/y, если y не равно 0. #include &lt;iostream&gt; using namespace std; ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.