Форум программистов, компьютерный форум, киберфорум
Наши страницы

Какую сортировку массива применить, чтобы посчитать количество перестановок двух соседних элементов? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти сумму ряда http://www.cyberforum.ru/cpp-beginners/thread1210081.html
Здравствуйте уважаемые форумчане! Нуждаюсь в помощи. Имеется ряд http://firepic.org/images/2014-06/16/4mby1f0q9sec.png Необходимо найти его сумму. Visual C++, консольное приложение. Желательно...
C++ Алгоритм Фибоначчи Пользователь вводит любые два числа и количество операций, программа должна два числа сложить и результат записать в конец, после сложить два последних числа и так же записать в конец, и так... http://www.cyberforum.ru/cpp-beginners/thread1210048.html
Блок-схемы C++
Кто может нарисовать 7 блок-схем, не сложные по видимому, но надо поскорее кто сечет отпишите плиз
C++ Набор инструментов для инди с мультиплеером по ip
Подскажите какие библиотеки подключать для создания игр в стиле контры, марио, battle toads... Только с поддержкой качественной графики и возможностью игры с аппонентами через локальную сеть,...
C++ Сохранение результатов в текстовый документ http://www.cyberforum.ru/cpp-beginners/thread1210039.html
Добрый день. Нужна помощь, в данный код нужно добавить возможность сохранения результатов в текстовый документ. #include <iostream> using namespace std; int main() { double x, y, o; ...
C++ Библиотеки glut.lib и glut32.lib не могу найти Здравствуйте товарищи, помогите с очередной дилеммой. На днях начал изучать программирование, скачал Dav C++, но для дальнейших уроков нужны библиотеки - glut.h , glut32.blut , glut.bll , glut32.lib.... подробнее

Показать сообщение отдельно
Sh@dow777
12 / 12 / 3
Регистрация: 10.12.2013
Сообщений: 679
17.06.2014, 13:27  [ТС]
Trwsdf, Вот сортировка слиянием.
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
#include <iostream>
using namespace std;
 
int A[500000], n, i;
 
void Merge(int *A, int first, int last)
{
int middle, start, final, j;
int *mas=new int[100];
middle=(first+last)/2;
start=first; 
final=middle+1;
for(j=first; j<=last; j++)
if ((start<=middle) && ((final>last) || (A[start]<A[final])))
{
mas[j]=A[start];
start++;
}
else
{
mas[j]=A[final];
final++;
}
for (j=first; j<=last; j++) A[j]=mas[j];
delete[]mas;
}
void MergeSort(int *A, int first, int last)
{
if (first<last)
{
MergeSort(A, first, (first+last)/2); 
MergeSort(A, (first+last)/2+1, last);
Merge(A, first, last);
}
}
int main()
{
 
cin>>n;
 
for (i=1; i<=n; i++)
{ 
    cin>>A[i];
}
MergeSort(A, 1, n);
 
for (i=1; i<=n; i++)
    cout<<A[i]<<" ";
 
return 0;
 
}
Как мне в этом коде подсчитать количество инверсий при сортировке?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru