Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
tolstovskiy
0 / 0 / 0
Регистрация: 09.05.2016
Сообщений: 9
1

Параллельная сортировка Бэтчера

11.12.2016, 11:53. Просмотров 1623. Ответов 1
Метки нет (Все метки)

Доброго времени суток всем.
есть код:
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <stdio.h>
 
#include <stdlib.h>
 
#define N 16
 
int Arr[N];
 
void FillArray()
 
{
 
for (unsigned i = 0; i < N; i++)
 
Arr[i] = rand() % 10;
 
}
 
void PrintArray()
 
{
 
for (unsigned i = 0; i < N; i++)
 
printf("%d ", Arr[i]);
 
printf("\n");
 
}
 
void BatcherSort()
 
{
 
unsigned p = N;
 
while (p > 0)
 
{
 
unsigned q = N, r = 0, d = p;
 
bool b;
 
do
 
{
 
unsigned nTo = N - d;
 
for (unsigned i = 0; i < nTo; i++)
 
if ((i & p) == r)
 
{
 
if (Arr[i] > Arr[i + d])
 
{
 
int temp = Arr[i];
 
Arr[i] = Arr[i + d];
 
Arr[i + d] = temp;
 
}
 
}
 
b = q != p;
 
if (b)
 
{
 
d = q - p;
 
q >>= 1;
 
r = p;
 
}
 
}
 
while (b);
 
p >>= 1;
 
}
 
}
 
int main(int argc, char* argv[])
 
{
 
FillArray();
 
PrintArray();
 
BatcherSort();
 
PrintArray();
 
return 0;
 
}
этот код выполняет сортировку Бэтчера, можно ли этим же способом отсортировать контейнер "map"???
если да, можите ли подсказать как это выглядеть будет??
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2016, 11:53
Ответы с готовыми решениями:

Параллельная сортировка Шелла
Здравствуйте!!! Помогите с заданием: Нужно распараллелить сортировку Шелла, но у меня что-то не...

Параллельная сортировка, протестировать алгоритм
Надо протестировать масштабируемость работы алгоритма для параллельной сортировки, у кого более 2...

Параллельная обработка
Добрый день! Подскажите, пожалуйста, как параллельно считать содержимое всех файлов из...

Параллельная прямая
Надо по заданным A,B,C найти две прямые на расстоянии от заданной от R. Кто-нибудь парочку формул...

Параллельная работа с документами
Доброго всем помогите доработать код, нужно организовать параллельную работу с документами...Можно...

1
RealKrah
2 / 2 / 0
Регистрация: 02.10.2017
Сообщений: 5
15.02.2018, 12:59 2
Можешь Объяснить этот код с момента
unsigned p = N;

unsigned q = N, r = 0, d = p;

unsigned nTo = N - d;
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2018, 12:59

Параллельная обработка файлов
Не понимаю как организовать параллельную обработку файлов в данной программе. Смысл в том что есть...

Параллельная работа с файлами
Помогите, есть такое задание: На компьютере существует папка с файлами. Файлов много, их имена...

Параллельная работа лифтов
Задача реализовать модель системы управления лифтами. Функция управления одним лифтом написана,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.