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

Сортировки слиянием с динамическим массивом - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Орграф. Найти все вершины не достижимые из данной http://www.cyberforum.ru/cpp-beginners/thread814927.html
граф хранится в виде матрицы смежности. сделал чтобы показывал только те вершины, которые к которым нет прямого пути, тоесть дуг от заданной к ним нет. как сделать, чтобы всевозможные пути рассматривал. #include "stdafx.h" #include "iostream" #include "stdio.h" #include "conio.h" using namespace std; bool menu();
C++ Создание пользовательских функций Необходимо реализовать программный код, позволяющий найти решение задачи получения несократимой дроби. Помогите люди!!!!!)) http://www.cyberforum.ru/cpp-beginners/thread814924.html
Замена символов в строке C++
Здравствуйте ,есть код ,который считывает строку и заменяет в ней определенные символы,выдаетмассу ошибок при компиляции ,помогите пожалуйста.! #include <iostream> using namespace std; int main() { string a; cin>>a; string b=a; for(int i=0;i<b;++i) {
C++ Создание пользовательских функций
Необходимо реализовать программный код, позволяющий найти решение следующей задачи. Для х, изменяющегося от a до b (интервал указан в третьей графе таблицы вариантов заданий) с шагом h= b−a 10 , вычислить функцию y=f(x), используя ее разложение в степенной ряд (вторая графа) в двух случаях: а) для заданного количества слагаемых N (величина зависит от свойств степенного ряда, примерное...
C++ Замена строки http://www.cyberforum.ru/cpp-beginners/thread814913.html
Здравствуйте. Необходимо одну строку заменить полностью на другую. Я бы хотел уточнить,все ли я так понял? По сути это делается так: Подключаем необходимые библиотеки: #include < iostream > #include < string > Объявляем нэймспас std:
C++ Некоторые действия над не большим массивом Нужна помощь в написании программы, которая выполняет ряд действий над массивом. Начало я написал, как вы можете увидеть ниже, и так нужно добавить следующие: Найти наименьший по абсолютной величине элемент среди элементов, расположенных между первым и вторым нулевыми элементами. Если по какой-либо причине найти такой элемент не удается, выдать об этом сообщение с указанием причины. (Из... подробнее

Показать сообщение отдельно
ya_noob
_
200 / 144 / 9
Регистрация: 08.10.2011
Сообщений: 432
21.03.2013, 20:03     Сортировки слиянием с динамическим массивом
Попробуйте понять как это работает:

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
#include <iostream> 
#include <cstdlib>
#include <ctime>
using namespace std;
 
template < class Item >
void mergeAB( Item a[], Item b[], const int l, const int r )
{
    for ( int i = l, j = r, k = l; k <= r; ++k )
        a[ k ] = ( b[ j ] < b[ i ] ? b[ j-- ] : b[ i++ ] );
}
 
template < class Item >
void mergeAB_rev( Item a[], Item b[], const int l, const int r )
{
    for ( int i = l, j = r, k = l; k <= r; ++k )
        a[ k ] = ( b[ i ] < b[ j ] ? b[ j-- ] : b[ i++ ] );
}
 
template < class Item >
void mergesortABr( Item a[], Item b[], const int l, const int r )
{
    if ( l >= r ) return;
 
    int m = ( l + r ) / 2;
 
    mergesortABr( b, a, l, m );
    mergesortABr_rev( b, a, m + 1, r );
    mergeAB( a, b, l, r );
}
 
template < class Item >
void mergesortABr_rev( Item a[], Item b[], const int l, const int r )
{
    if ( l >= r ) return;
 
    int m = ( l + r ) / 2;
 
    mergesortABr_rev( b, a, l, m );
    mergesortABr( b, a, m + 1, r );
    mergeAB_rev( a, b, l, r );
}
 
template < class Item >
void mergesortAB( Item a[], const int l, const int r )
{
    Item *aux = new Item [ r + 1 ];
 
    for ( int i = l; i < r; ++i ) aux[ i ] = a[ i ];
    mergesortABr( a, aux, l, r );
}
 
template < class Item >
void print( Item *a, int l, int r )
{
    while ( l <= r )
        cout << a[ l++ ] << ' ';
    cout << endl;
}
 
int main()
{
    srand( time( 0 ) );
 
    const int N = 30;
    int a[ N ];
 
    for ( int i = 0; i < N; ++i )
        a[ i ] = rand() % 100;
    print( a, 0, N - 1 );
    mergesortAB( a, 0, N - 1 );
    print( a, 0, N - 1 );
 
    return 0;
}
 
Текущее время: 11:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru