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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать прогграмма http://www.cyberforum.ru/cpp-beginners/thread374154.html
3.Вы, наверное, слышали историю о том, как один могущественный правитель обещал наградить ученого, оказавшего ему большую услугу. Ученый, когда его спросили, что бы он хотел получить в награду, указал на шахматную доску и промолвил: «Положите одно пшеничное зерно на первую клетку, два — на вторую, четыре на третью, восемь на следующую и т. д.». Правитель, которому явно недоставало математической...
C++ не могу разобрать как подпрограмму сделать для суммы 2-ух оценок. Разработать программу обработки информации о спортивных результатах соревнований. Сведение о результатах хранятся в файле. Структура записи:-номер участника. - фамилия - город - количество очков по двум вида состязаний(2 оценки) . Количество записей произвольное. Программа должна содержать не менее 2 подпрограмм и выполнять задачи: -определить фамилии занявших призовые месте по сумме... http://www.cyberforum.ru/cpp-beginners/thread374152.html
Реализовать изменяемое дерево C++
Нужно найти минимальный путь в графе, реализация самого графа у меня с помощью матрицы, где номера строк и столбцов - вершины по порядку (квадратная), а значения в них - длины ребер, если 0, то вершины не являются соседними. Поиск пути решил делать с помощью Алгоритма Дейкстры, для него нужно по ходу поиска создать и потом изменять дерево, в предыдущей теме предлагалось для построения графа...
Взгляните на задачку С++ C++
С клавиатуры последовательно вводятся числа типа short. Составить программу, которая выводит сначала положительные числа в порядке их введения, а затем отрицательные в порядке их ввода. Использовать очередь. Ввод чисел прекращается, когда введенное число - 0 Всем спасибо за помощь!!!
C++ наибольший член в последовательности http://www.cyberforum.ru/cpp-beginners/thread374126.html
Даны натуральное n, действительные числа а1,...,an. Верно ли что наибольший член в последовательности а1,...,аn, по модулю больше единицы. Помоги плиз...надо на с++...буду благодарен за помощь...очень нужно..помогите плиз
C++ Программа для получения объема свободного места на диске Есть код программы для определения свободного места на диске на VB. Надо написать то же самое на С++ с очень подробными комментариями. Есть форма, но как писать код, совсем не понятно.. Основное условие - программный модуль доложен быть разработан с использованием только функций API Windows. Нельзя использовать библиотеки типа MSF или VCL. Срок - максимум 10 дней, лучше неделя. Если кто-то может... подробнее

Показать сообщение отдельно
Revol'veR
 Аватар для Revol'veR
23 / 23 / 2
Регистрация: 05.11.2010
Сообщений: 134
28.10.2011, 20:11     сортировка слиянием
Может это подойдёт?

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
#include <vector>
 
template <typename T>
inline void swap( T & arg1, T & arg2)
{
    T temp = arg1;
    arg1 = arg2;
    arg2 = temp;
};
template <typename T>
inline void merge( std::vector<T> & vArray, std::vector<T> & vTemp, int head, int middle, int tail)
{
    int tmp = 0, lower = head, upper = middle+1;
 
    while (lower <= middle && upper <= tail)
    {
        if (vArray[lower] < vArray[upper])
        {   vTemp[tmp++] = vArray[lower++]; }
        else
        {   vTemp[tmp++] = vArray[upper++]; }
    }
 
    if (lower <= middle)
    {
        for(; lower <= middle; vTemp[tmp++] = vArray[lower++]);
    }
    else
    {
        for(; upper <= tail; vTemp[tmp++] = vArray[upper++]);
    }
 
    int arrayPointer = head;
    for (tmp = 0; arrayPointer <= tail; vArray[arrayPointer++] = vTemp[tmp++]);
}
template <typename T>
inline void merge_sort_helper( std::vector<T> & vArray, std::vector<T> & vTemp, int head, int tail)
{
    if(head == tail) 
    {   return; }
 
    int middle = (head+tail)/2;
 
    merge_sort_helper( vArray, vTemp, head, middle);
    merge_sort_helper( vArray, vTemp, middle+1, tail);
 
    merge( vArray, vTemp, head, middle, tail);
}
 
template <typename T>
void merge_sort( std::vector<T> & vArray)
{
    std::vector<T> v(vArray.size(), 0);
    merge_sort_helper( vArray, v, 0, vArray.size()-1);
}
 
Текущее время: 02:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru