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

Подсчет кол-ва инверсий - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Кружок хорового пения http://www.cyberforum.ru/cpp-beginners/thread515562.html
Кружок хорового пения В некотором учебном заведении функционирует кружок хорового пения. Начало кружка всегда происходит единообразно: по сигналу руководителя кружка ВСЕ n УЧАСТНИКОВ становятся в круг и КАЖДЫЙ m-й для распевки поёт гамму. Руководитель кружка заметил, что размять голосовые связки не всегда удаётся всем участникам кружка. По заданным n и m помогите ему определить, или в...
C++ Хэш-таблица. Метод цепочек. C++ Уважаемые, программисты, задание звучит так: "Таблица строится по методу цепочек с использованием хеш-функции, возвращающей сумму двух первых букв идентификатора." Судя из задания созрело несколько вопросов: 1) "...возвращающей сумму двух первых букв идентификатора". Сумма первых двух букв идентификатора - это сумма АСКИ-кодов этих букв, так? 2) Напишите, пожалуйста, очень простой пример... http://www.cyberforum.ru/cpp-beginners/thread515554.html
Написать программу с определенными функциями (не объектно-ориентированное программирование) C++
Предметная область – центр повышения квалификации. Объект – дисциплина (курс). Данные об объекте:  наименование;  преподаватель;  количество часов;  оплата;  число человек в группе. Функции: 1. Подсчитать среднее количество человек, приходящихся на одного преподавателя (учесть, что каждый преподаватель может вести несколько групп). 2. Вывести названия курсов, которые ведут...
C++ Работа в графическом режиме. Графические примитивы, движение объектов.
В соответствии с возникающими ассоциациями от словесного описания картины, нарисовать ее графический аналог. Использовать различные цвета, функции рисования, эффекты анимации. На рисунке ОБЯЗАТЕЛЬНО должен присутствовать ДВИЖУЩИЙСЯ ОБЪЕКТ! Поляна, трава, цветы, бабочки, пчелы.
C++ Почему не возвращается значение через указатель из метода класса? http://www.cyberforum.ru/cpp-beginners/thread515511.html
Вот решил проверить поведение указателя в программе (я только учу C++), как оказалось после выхода из метода, указатель не указывает на присвоеное ему значение внутри тела метода. Почему так происходит? TestingCPPSyntax.h #pragma once namespace Casper { class TestingCPPSyntax { public: TestingCPPSyntax(void); ~TestingCPPSyntax(void);
C++ Решение мат задачи симплекс методом на С++. Здравствуйте!Пожалуйста помогите написать программу на с++ для решение моей задачи вот она решенная симплекс методом:http://www.matburo.ru/Examples/Files/Simplex1.pdf подробнее

Показать сообщение отдельно
Klimanso
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 4

Подсчет кол-ва инверсий - C++

10.03.2012, 19:56. Просмотров 867. Ответов 6
Метки (Все метки)

Здравствуйте, помогите разобраться с ошибкой.

Компилирую код, а компилятор (VS 2010 ) выдает ошибку, не могу понять что делать.

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
#include <iostream>
#include <vector>
 
using namespace std;
 
int merge (vector <int> &mas,int l,int m,int r){
 
    int colInv = 0;
 
    vector <int> dopmas(r-l-1);
    int pos1 = l;
    int pos2 = m+1;
    int posD = 0;
 
    while (pos1 >=m && pos2<=r){
        if(mas[pos1] < mas[pos2])
            dopmas[posD++] = mas[pos1++];
        else{
            dopmas[posD++] = mas[pos2++];
            colInv += m - pos1 + 1;
        }
    }
 
    while (pos1<=m)
        dopmas[posD++] = mas[pos1++];
    while(pos2<=r)  
        dopmas[posD++] = mas[pos2++];
 
    copy(dopmas.begin(),dopmas.end(),mas.begin() + l);
 
 
 
 
    return colInv;
}
 
int  merge_sort(vector <int> &mas,int l,int r){
    int colInv =0;
    if (l == r)
        return colInv;
    
    int m=(l+r)>>1;
    colInv += merge_sort(mas,l,m);
    colInv += merge_sort(mas,m+1,r);
    
    
    colInv += merge(mas,l,m,r);
 
    return colInv;
}
 
int main()
{
    int n;
    cin >> n;
    vector <int> mas ;
 
    for(int i=0;i<n;i++)cin >> mas[i];
    
    
    int colInv = merge_sort(mas,0,n-1);
 
    cout << colInv << endl;
 
    return 0;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru