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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевод в 9-чную систему счисления http://www.cyberforum.ru/cpp-beginners/thread421424.html
есть задача, что бы решить ее до конца мне надо сделать перевод из 10-тичной(можно любой другой) в девятиричную систему счисления я бы это сделал сам, если бы не странность системы. В задание звучит так: Рассмотрим девятеричную позиционную систему счисления с цифрами { B, A, 0, 1, 2, 3, 4, 5, 6 }, где цифра A имеет значение -1, а цифра B – значение -2. подскажите как...
C++ Квадратная Матрица Задание написать программу на языке С++, с пояснениями к программному коду Для заданного целого N (0 <= N <= 40) программа должна создавать квадратную матрицу размера N на N такую, что каждый недиагональный элемент матрицы представляет собой сумму индексов элемента (нумерация индексов начинается с единицы), а каждый диагональный элемент - сумму элементов, находящихся с ним в одной строке и одном... http://www.cyberforum.ru/cpp-beginners/thread421418.html
Упорядочить слова в алфавитном порядке на С C++
ребят помогите с задачкой, а то препод озадачил. самому не получается сделать. требуется отсортировать слова в строке в алфавитном порядке. строка заносится в символьный массив. функцию strlen использовать нельзя. массив безразмерный. сортировку требуется занести в отдельную функцию.
C++ Непонятная работа вывода
Почему при выводе переменной а выводится 1, хотя перед тем как вывести ее выполняется lol(а)? Причем, при следующем выводе а выводится правильное значение(2). int lol(int &a) { a++; return 0; } int main()
C++ как дописать в файл http://www.cyberforum.ru/cpp-beginners/thread421360.html
Столкнулся со следующей задачей, не знаю как сделать. В процессе работы кода нужно периодически сохранять массив данных в текстовый файл. Вначале сделал просто - дописывается столбец в конец файл. Но это неудобно. Хочу сделать так, чтобы каждый раз в файл добавлялась колонка из данных. Т.е. например был файл 1 -1 2 -2 3 -3 4 -4 А на следующем шаге дописывается колонка: 1 ...
C++ Дан числовой массив,Дано предложение. Часть 1. Дан числовой массив. Реализовать алгоритм сортировки вставками. Часть 2. Дано предложение(ввод с клавиатуры). Удалить из неё все буквы «e» и «m» подробнее

Показать сообщение отдельно
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
02.01.2012, 16:22     Сортировка слиянием С++
Эммм, а вот так разве не правильнее (часть кода Tiga просто модифицировал)? Ато странное у вас слияние, которое заключается в слиянии двух массивов, а потом последующей их сортировке.
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int *arr1;
    int *arr2;
    int *arr3;
 
    int n1 = 0;
    int n2 = 0;
 
    cout << "Enter quantity of elements in first array: ";
    cin >> n1;
    arr1=new int[n1];
    for(int i = 0; i < n1; i++)
    {
        cout << "Enter [" << i << "] element of array: ";
        cin >> *arr1++;
    }
    arr1-=n1;
 
    cout << "Enter quantity of elements in second array: ";
    cin >> n2;
    arr2=new int[n2];
    for(int i = 0; i < n2; i++)
    {
        cout << "Enter [" << i << "] element of array: ";
        cin >> *arr2++;
    }
    arr2-=n2;
 
    arr3=new int[n1+n2];
    int all=n1+n2;
 
    for(int i = 0; i < all; i++)
    {
        if(!n1 || !n2)
        {
            while(n1)
            {
                *arr3++=*arr1++;
                n1--;
            }
            while(n2)
            {
                *arr3++=*arr2++;
                n2--;
            }
            break;
        }
        if (*arr1 < *arr2)
         *arr3++=*arr1++,n1--;
        else
         *arr3++=*arr2++,n2--;
    }
    arr3-=all;
 
 
    cout << "Resulting array: ";
    for(int i = 0; i < all; i++)
    {
        cout << *arr3++<< " ";
    }
 
    delete arr1;delete arr2; delete arr3;
 
 
    system("PAUSE");
    return 0;
}
 
Текущее время: 20:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru