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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача с классом http://www.cyberforum.ru/cpp-beginners/thread827412.html
Здравствуйте. Имеется следующий класс. class CClass { private: int *arr; const int size;
C++ Переставить местами строки Как в масиве строк поменять, например, первую и вторую строку местами? http://www.cyberforum.ru/cpp-beginners/thread827411.html
Найти ошибку в коде C++
Помогите пж. найти ошибку в коде,он почему то последний символ не считывает. #include <iostream> #include <fstream> using namespace std; int main(){ char a; int bkv=0,cfr=0,ost=0; ifstream file("c.txt"); file.get(a);
C++ Лаба по археому (Реализовать имитационную модель процессора со стековой адресацией с двумя командами)
Реализовать имитационную модель процессора со стековой адресацией с двумя командами - занесением в стек и нахождением дополнения к числу в дополнительном коде.
C++ Интрузивный и не интрузивный список http://www.cyberforum.ru/cpp-beginners/thread827394.html
Здорова господа! Что такое обычный список это понятно есть узел в котором находится указатель на соседний элемент и переменная которая содержит значение узла. А от интрузивный список хз. Там я от посмотрел в узле содержится токо два указателя на элементы, а где же хранятся данные? От примерчик из википедии: struct list_link { list_link *prev, *next; }; struct element
C++ несовместимость типов помогите разобраться, передаю в функцию update_table массив указателей на фигуры, для каждой из которых должна вызываться add_to_table. какие аргументы должна содержать функция add_to_table?? .... void add_to_table(table *T,figure *F) { char *B; B=&(T->A); *(B+8*(8-(F->y))+(F->x-65))=F->type; } подробнее

Показать сообщение отдельно
FrauAja
0 / 0 / 0
Регистрация: 18.03.2013
Сообщений: 6
03.04.2013, 22:21     автоматная программа сортировки слиянием
есть программа, реализующая сортировку слиянием. нужно написать автоматную сортировку слиянием
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
void merge(int *A, int l, int s, int r)
{
//слияние упорядоченных частей массива
int pos1=l;
int pos2=s+1;
int pos3=0;
int *B;
B=(int*)calloc((r-l+1), sizeof(int));
 
//идет слияние, пока есть хоть один элемент в каждой последовательности
while(pos1<=s && pos2<=r)
{
 if(A[pos1]<A[pos2]) B[pos3++]=A[pos1++];
 else B[pos3++]=A[pos2++];
}
 
//одна последовательность закончилась
while(pos2<=r)
B[pos3++]=A[pos2++];
while(pos1<=s)
B[pos3++]=A[pos1++];
 
//скопировать B в A
for(pos3=0; pos3<r-l+1; pos3++)
A[l+pos3]=B[pos3];
free(B);
}
 
void mergeSort(int *A,int l, int r)
{
int s;//индекс, по которому делим массив
if(l<r)//если больше одного элемента
{
  s=(l+r)/2;
  mergeSort(A, l, s); //сортировать левую половину
  mergeSort(A, s+1, r); //сортировать правую половину
  merge(A, l, s, r); //слить результаты в общий массив
}
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru