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

inplace_merge - C++

Восстановить пароль Регистрация
 
IcyWind
8 / 8 / 2
Регистрация: 19.09.2011
Сообщений: 268
27.03.2012, 15:07     inplace_merge #1
Здравствуйте. Нужна оч эффективный аналог это фунции...попытался придумать алгоритм, по которому она работает...получается слишком много проверок, копирований и т.д....
решил, что обычное копирование будет работать быстрее:
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
29
30
31
32
33
34
vector<int> my_inplace_merge(vector<int>::iterator midl, vector<int> &vec)
{
    vector<int> help;
    auto it1 = vec.begin();
    auto it2 = midl;
    auto e = vec.end();
    while ((it1 != midl) && (it2 != e))
        if(*it1 < *it2)
        {
            help.push_back(*it1);
            ++it1;
        }
        else
        {
            help.push_back(*it2);
            ++it2;
        }
 
    if (it1 == midl)
        while (it2 != e)
        {
            help.push_back(*it2);
            ++it2;
        }
    else
        if (it2 == e)
            while (it1 != midl)
            {
                help.push_back(*it1);
                ++it1;
            }
 
    return help;
}
ещё вопросик, что происходит со старым вектором, если происходи вызов
C++
1
b1 = my_inplace_merge(p1_ave, b1);
Деструктор вызывается, память освобождается?

так вот....такая функция работает медленней стандартной....
есть мысли по поводу улучшенного алгоритма стандартной?

Добавлено через 3 часа 28 минут
ау?)_

Добавлено через 16 часов 40 минут
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2012, 15:07     inplace_merge
Посмотрите здесь:

C++ inplace_merge

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

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

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