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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Работа с файловой системой в консольном приложение без WinAPI, QT, BOOST и пр http://www.cyberforum.ru/cpp-beginners/thread773011.html
Ребят, кто подскажет, можно ли в консольном приложение работать с файловой системой на чистом языке С или С++ ? Тоесть получать список файлов в папке, создавать папки, удалять и тд. Причём всё это делать без использования дополнительных библиотек, типа QT, BOOST, а так же не используя функции WinAPI (типа FindFirstFile), не используя юниксовых фишек типа dirent.h и тд
C++ простыми словами объяснте пожалуйста, в чем суть этого оператора: -> простыми словами объяснте пожалуйста, в чем суть этого оператора: -> http://www.cyberforum.ru/cpp-beginners/thread773007.html
C++ Запись дерева в файл
Помогите организовать запись дерева в файл. текст: #include <stdio.h> #include <stdlib.h> #include <iostream> #include <conio.h> #include <string.h> #define VER 50 #define SIZE 20
C++ Как создать функцию
char podstorka(char str1,char str2,int m,char str3) { size_t pos=m; size_t len1=strlen(str1); size_t len2=strlen(str2); if(len1<pos) pos=len1; memcpy(str3,str1,sizeof(char)*pos); memcpy(str3+pos,str2,sizeof(char)*len2); memcpy(str3+pos+len2,str1+pos,sizeof(char)*(len1-pos+1)); return str3;
C++ перевод из числа в прописной вид не массив http://www.cyberforum.ru/cpp-beginners/thread772966.html
Здравствуйте товарищи!Нужна ваша помощь в исправлении кода. Что нужно мне изменить в коде что бы при вводе числа например 1234.34 выводило одна тысяча двести тридцать четыре доллара тридцать четыре цента при этом переводиться должны числа от 0 до 999 999 999 С указателями и строками пока не очень дружу Класс string препод запретил , как и функции для работы со строками и...
C++ Шаблонный класс, принимающий InputIterators в конструкторе Есть Stack.h #ifndef _STACK_H_ #define _STACK_H_ #include <cstddef> #include <iterator> template <class T> class Stack { public: подробнее

Показать сообщение отдельно
popelyuk
 Аватар для popelyuk
8 / 8 / 1
Регистрация: 04.12.2012
Сообщений: 130
27.01.2013, 19:36     Проверьте, пожалуйста, правильность алгоритма Timsort для связанных списков!
Имеет ли то что я написал что-то общее с 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);
}
оно то, конечно, работает но вот с скоростью работы я не уверен то ли получилось.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru