1 / 1 / 1
Регистрация: 26.11.2012
Сообщений: 31
1

Сортировка слиянием

18.12.2012, 22:54. Показов 1673. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На лабороторной задали написать сортировку массива слиянием, рабочую версию реализовать удалось, только вот она жрёт лишнюю память, которая висит занятой после выхода из сортировки, это происходит из-за постоянного выделения памяти под new_num. Может кто-нибудь подскажет как можно это исправить ?
Вот сам код
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
void merge_sort(int*& left, int n)
{
    if (n>1)
    {
        int split = n/2;
        int* right = left + split;
        merge_sort(left, split);
        merge_sort(right, n-split);
        int* new_num = new int[n];
        int* sorted = new_num;
        int* l_end = left + split - 1;
        int* r_end = right + n - split - 1;
        while (left <= l_end && right <= r_end)
        {
            if (*left<=*(right))
            {
                *new_num = *left;
                new_num++;
                left++;
            }
            else
 
            {
                *new_num = *right;
                new_num++;
                right++;
            }
        }
        while (left <= l_end)
        {
            *new_num = *left;
            left++;
            new_num++;
        }
        while (right <= r_end)
        {
            *new_num = *right;
            right++;
            new_num++;
        }
        left = sorted;
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2012, 22:54
Ответы с готовыми решениями:

Сортировка слиянием. В каком куске кода происходит сортировка и каким именно образом?
Помогите, пожалуйста, разобраться. Подскажите в каком куске кода происходит сортировка и каким...

Сортировка Слиянием vs Быстрая Сортировка - что лучше
Народ, помогите разобраться какой из методов сортировки лучше &quot;Сортировка Слиянием&quot; или &quot;Быстрая...

2 сортировки: пирамидальная сортировка и сортировка слиянием
Реализовать два улучшенных алгоритма сортировки. Для каждого алгоритма вычислить показатель...

Шейкерная сортировка + сортировка слиянием
вот часть когда,которая выполняет шейкерную сортировку : для символьного и целочисленого массива ....

2
Неэпический
18090 / 10671 / 2060
Регистрация: 27.09.2012
Сообщений: 26,846
Записей в блоге: 1
19.12.2012, 11:42 2
Цитата Сообщение от 123Unknown Посмотреть сообщение
Может кто-нибудь подскажет как можно это исправить ?
Освободите память после циклов.
C++
1
delete [] sorted;
0
1 / 1 / 1
Регистрация: 26.11.2012
Сообщений: 31
19.12.2012, 23:00  [ТС] 3
Цитата Сообщение от Croessmah Посмотреть сообщение
Освободите память после циклов.
C++
1
delete [] sorted;
Разве после удаления sorted, мой отсортированный массив не канет в лету(ведь именно sotred указывает на отсортированный массив)??, и разве не нужно удалять первоначальный left??, я пробовал так:
В начале создавал:
C++
1
 int* temp = left
Затем после циклов писал:
C++
1
delete[] temp;
, но так выдавало ошибку
0
19.12.2012, 23:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.12.2012, 23:00
Помогаю со студенческими работами здесь

Сортировка слиянием
Даны два текстовых файла f1.txt и f2.txt, состоящие из целых чисел, которые упорядочены по...

Сортировка слиянием
Сортировка слияние, есть???

Сортировка с слиянием
Приведите простой пример на сортировка с слиянием помогите

Сортировка слиянием
Привет всем, пытаюсь сделать сортировку 100 чисел слиянием. Выдается ошибка на функции delete...

сортировка слиянием
программа должна выполнять сортировку строк слиянием с использованием указателей. ...

Сортировка слиянием С++
Помогите пжлст написать программу со слиянием. Например вводим массивы A=1 2 3 и B= 4 5 6 и...


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

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

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