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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Разбить строку http://www.cyberforum.ru/cpp-beginners/thread214539.html
Просьба написать программу на С++ , которая разбивает строку длинной в 200 символов на строки по 20.
C++ Дана строка, состоящая из букв, цифр, запятых, точек, знаков «+» и «–». Выделить подстроку, которая соответствует записи целого числа. #include <iostream.h> #include <string.h> int main() { char st,st2; int i,j; cout << "Vvedite stroku"; cin >> st; int n=strlen(st); http://www.cyberforum.ru/cpp-beginners/thread214531.html
C++ Не видит класс итераторов
Предметная область: Множество натуральных чисел, Реализованное через Хеш таблицы С цепочками. В классе "myhash" не воспринимается класс "it_hash" а точнее не воспринимается функция it_hash begin() const; Вот Код: #include<iostream> using namespace std;
error C2059: синтаксическая ошибка C++
Добрый день. Собственно, проблема вот в чем. Класс ContStack является наследником чисто виртуалього интерфейса NVICont. При компиляции в месте "Arg<T>* _p;" выдает ошибку: error C2059: синтаксическая ошибка: < 1> g:\vronskiy_lab5_\vronskiy_lab5=(\container.h(90): см. ссылку на создание экземпляров класса шаблон при компиляции "ContStack<Arg,T>"...
C++ MDI запретить создание одного и того же документа http://www.cyberforum.ru/cpp-beginners/thread214515.html
Как запретить создание одного и того же документа в MDI-интерфейсе. (то есть документа одного и того же типа)? И если такой документ создан, перекидывать фокус на него?
C++ функция, суммирует матрицы можно ли организовать её в таком виде? int normsumm(int *perv, int *vtor, int razm) { int *ps, summ; ps=summ; for (int i;i<razm*razm;i++) { *ps=*perv+*vtor; подробнее

Показать сообщение отдельно
gencurrent
Сообщений: n/a
24.06.2012, 15:39     Сортировка слиянием
Попробуйте сначала упрощенную версию кода без препроцессорной обработки условий и макросов.
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <iostream> 
#include <iomanip>
#include <time.h> 
using namespace std; 
 
int const N = 16;
 
void MergeSort(int[], int, int);
 
int main() 
{
    system("color 0a");
    int i, *a = new int[N];
 
    srand(unsigned(time(NULL)));
    for(i=0; i<N; i++) cout << setw(4) << (a[i] = int((double(rand()) / RAND_MAX) * 100));
    cout << endl;
 
    MergeSort(a, 0, N);
 
    for(i=0; i<N; i++) cout << setw(4) << a[i];
    cout << endl;
    delete[] a;
 
    system("PAUSE");
}
 
void Merge(int array[], int first, int middle, int last, int temp[]) 
{
    int idx = first;            
    int begin1 = first, end1 = middle;  
    int begin2 = middle+1, end2 = last; 
 
    for(; begin1 <= end1 && begin2 <= end2; ) 
    {
        if (array[begin1] < array[begin2]) 
            temp[idx++] = array[begin1++];
        else
            temp[idx++] = array[begin2++];
    }
 
    for(; begin1 <= end1; )
        temp[idx++] = array[begin1++];
 
    for(; begin2 <= end2; )
        temp[idx++] = array[begin2++];
 
 
    for(idx = first; idx <= last; idx++) 
        array[idx] = temp[idx];
}
 
void InternalMergeSort(int array[], int first, int last, int buffer[]) 
{
     if (first < last) 
     {
        int m = (first + last)/2;
        InternalMergeSort(array, first, m, buffer);
        InternalMergeSort(array, m+1, last, buffer);
        Merge(array, first, m, last, buffer);
    }
}
 
void MergeSort(int array[], int first, int last) 
{
    int *buffer = new int[N];
    InternalMergeSort(array, 0, N-1, buffer);
    delete[] buffer;
}
Потом разделите ее на файлы, если это необходимо.

У меня на Visual C++2010 все работает.

В конце концов, можно будет передать N как аргумент.

Добавлено через 4 минуты
Кстати, Ваша external N неинициализирована. Это одна из проблем.
 
Текущее время: 16:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru