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

Ошибка в коде сортировки слиянием - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Даны 3 квадратные матрицы http://www.cyberforum.ru/cpp-beginners/thread969862.html
Даны 3 квадратные матрицы. Две из них сначало вычести, а потом умножить на третью. не могу додуматься с решением.
C++ Visual C++ не компилирует "Hello,world" Доброго времени суток! Простите за вопрос, но никак! не могу заставить Visual C++ 2008 выдать на экран этот мегасложный текст. Что пробовала: //error C2065: cout: необъявленный идентификатор #include "stdafx.h" int main() { http://www.cyberforum.ru/cpp-beginners/thread969861.html
Возрат массива из функции C++
Добрый вечер. Подскажите пожалуйста как вернуть массив #include "stdafx.h" #include <iostream> #include <string> #include <cstdlib> #include <Windows.h> using namespace std;
C++ char конвертация
Здравствуйте, есть кусок кода какой в принципе понятен как он работает ну вот только не могу понять строку sum=min+max+carry-2*'0'; именно -2*0; И на бумажке питалась понять, просто как можно сложить int + char, получается бред. Заодно спрошу (char)? Это перевод типа int в char так? string operator+(string sum1, string sum2){ string result =""; int carry=0; int sum=0; int i;...
C++ Структура. Вывести информацию по студентам в порядке уменьшения среднего балла http://www.cyberforum.ru/cpp-beginners/thread969847.html
Есть вот такая задача: В деканате хранится следующая информация о студентах: ФИО, номер группы, оценки за последнюю сессию. Вывести информацию по студентам в порядке уменьшения среднего балла. Номер группы для поиска пользователь вводит самостоятельно. Не знаю как сделать сортировку по среднему баллу. Так же не знаю как сделать поиск по номеру группы. Подскажите, пожалуйста.
C++ Связь между классами Здравствуйте друзья. У меня не получается из одного класса выбрать информацию вводимую с клавиатуры и сделать так, чтобы она выводилась в другом классе. Может я не очень ясно объяснил, но вот код. #include <iostream> using namespace std; class Computer { public: char model; подробнее

Показать сообщение отдельно
give_up
1 / 1 / 0
Регистрация: 17.03.2011
Сообщений: 51

Ошибка в коде сортировки слиянием - C++

05.10.2013, 23:13. Просмотров 356. Ответов 3
Метки (Все метки)

Вобщем, я реализовал рекурсивную сортировку слиянием (Merge Sort), но она работает за O(N), а должна за O(N log N), помогите найти ошибку в коде (a - исходный массив, N - количество элементов в нем)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void merge(int *a, int *b, int *c, int Na, int Nb)
{   
    int i=0; int j=0;
    while (i<Na && j<Nb) {
        if (a[i]<=b[j]) {c[i+j]=a[i];i++;}
        else {c[i+j]=b[j];j++;}}
    while (i<Na) {c[i+j]=a[i];i++;}
    while (j<Nb) {c[i+j]=b[j];j++;} 
}
 
void sort(int *a, int N)
{   
    int i,c;
    if (N<2) return;
    if (N==2) {if (a[0]>a[1]) {c=a[0];a[0]=a[1];a[1]=c;} return;}
    sort(a,N/2);
    sort(a+N/2,N-N/2);
    int *b = (int*)malloc(sizeof(int) * N);
    merge(a,a+N/2,b,N/2,N-N/2);
    for (i = 0; i < N; i++) a[i]=b[i];
    free(b);
    return;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru