6 / 6 / 3
Регистрация: 29.07.2015
Сообщений: 61
1

Merge и сортировка

29.07.2015, 18:50. Показов 826. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Почему merge не сортирует массив в алфавитном порядке?

c:
[10, Kate]
[11, Aleks]
[80, Irina]
[16, Sasha]
[20, Vlad]
[25, Vika]

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
 
struct Entry
{
    long nr;
    char name[30];
 
    bool operator<(const Entry &entry)
    {
        return strcmp(name, entry.name) < 0;
    }
};
 
 
void PrintArray1DEntry(const char *info, const Entry *begin, const Entry *end);
 
 
int main()
{
    Entry  a[] = {{10, "Kate"}, {11, "Aleks"}, {80, "Irina"}};
    const int aSize = sizeof(a)/sizeof(a[0]);
 
    Entry b[] = {{16, "Sasha"}, {20, "Vlad"}, {25, "Vika"}};
    const int bSize = sizeof(b)/sizeof(b[0]);
 
    Entry c[aSize+bSize];
    const int cSize = sizeof(c)/sizeof(c[0]);
 
    std::merge(a, a+aSize,  b, b+bSize,  c);
 
    PrintArray1DEntry("c:", c, c+cSize);
 
    system("pause");
    return 0;
}
 
 
void PrintArray1DEntry(const char *info, const Entry *begin, const Entry *end)
{
    std::cout << info << std::endl;
 
    for (Entry const *i=begin; i!=end; i++)
        std::cout << "[" << i->nr << ", " << i->name << "]" << std::endl;
 
    std::cout << std::endl;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.07.2015, 18:50
Ответы с готовыми решениями:

Сортировка слиянием (Merge sort)
Пожалуйста, помогите сортировать лист в C++ только надо именно слиянием отсортировать

Компилятор заменяет самописную merge на std::merge
Доброго времени суток. Возник такой вопрос, пишу свою сортировку слиянием, имеется 2 функции...

Сортировка естественным слиянием (Natural Merge)
Не могу найти сортировку Естественным слиянием (код). Есть у кого-нибудь??

Сортировка естественным слиянием (Natural Merge)
Не могу найти сортировку Естественным слиянием (код). Есть у кого-нибудь?

2
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
29.07.2015, 19:37 2
Цитата Сообщение от IVSasha Посмотреть сообщение
Почему merge не сортирует массив в алфавитном порядке?
Потому что merge никогда не сортировала и (надеюсь) не будет сортировать.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
29.07.2015, 19:41 3
Слияние и алгоритм сортировки слиянием - не одно и тоже. Слияние само по себе сортировать не может. В отличие от алгоритма сортировки слиянием, в котором сортировка достигается надлежащим выбором очередного подлежащего слиянию фрагмента.
0
29.07.2015, 19:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.07.2015, 19:41
Помогаю со студенческими работами здесь

Merge sort (Сортировка слиянием) - исправить ошибки в коде
Privet dami i gospoda. Ne poluchaetsa realisovat' Merge sort. Proga kompiliruetsa no sorting ne...

Сортировка слиянием (merge sort), ошибка в динамической аллокации
Уважаемые форумчане, помогите, пожалуйста, разобраться. Задача 1 заключается в реализации...

Merge
Начинаю пользоваться TortoiseSVN, возникли вопросы при изучении. Например, в каталоге Trunk...

Merge into
Коллеги, добрый день. Понадобилось мне добавить в таблицу значения из другой системы. Единственное...


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

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

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