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

Массив из двух очередей - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти сумму положительных элементов столбцов в которых есть нулевой элемент http://www.cyberforum.ru/cpp-beginners/thread1077241.html
Найти сумму положительных элементов столбцов в которых есть нулевой элемент
C++ Как сделать больше цифр после запятой Есть консольная программа вычисляющая sqrt: #include <iostream> #include <cmath> using namespace std; int main() { setlocale(0, ""); double number, answer; cout << "Введите число: "; http://www.cyberforum.ru/cpp-beginners/thread1077164.html
Проверка записи на соответствие условию: правильная скобочная запись из круглых и квадратных скобок C++
Здравствуйте! Задача: проверка записи на соответствие условию: правильная скобочная запись из круглых и квадратных скобок, внутри квадратных - не менее двух пар скобок (любых) Грамматика: <скобки> ::= <СКБ> <скобки> | e <СКБ> ::= <квадратные скобки> | <круглые скобки> <круглые скобки> ::= ( <скобки> ) <квадратные скобки> ::=
Что из себя представляет допустим поток ввода/вывода C++
Поясните пожалуйста что из себя представляет допустим поток ввода/вывода в С++ ? Это участок памяти который представляет собой что-то вроде буфера обмена или как ?
C++ Ввести массив в виде таблицы и переставить его элементы местами http://www.cyberforum.ru/cpp-beginners/thread1077063.html
То есть последний элемент в массиве становится предпоследним и тд... Вот я написал массив в виде таблицы (вывел макс. число). Что мне нужно сделать / изменить в коде программы чтобы элементы поменять местами? Код : #include <iostream> #include <iomanip> using namespace std; int main() { const int n = 4, m = 5;
C++ В одномерном массиве четные элементы разделить на 2, нечетные умножить на 3 Люди помогите пожалуйста, не знаю как сделать программу. В одномерном массиве четные элементы разделить на 2,нечетные умножить на 3. подробнее

Показать сообщение отдельно
_script_
169 / 137 / 34
Регистрация: 01.05.2012
Сообщений: 414
21.01.2014, 13:43     Массив из двух очередей
Цитата Сообщение от Ульяниус Посмотреть сообщение
Мне вообще надо реализовать сортировку слиянием.
Если так тов вот пример сортировки слиянием:
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
void merge(int *a, long lb, long split, long ub) {
// Слияние упорядоченных частей массива в буфер temp
// с дальнейшим переносом содержимого temp в a[lb]...a[ub]
  // текущая позиция чтения из первой последовательности a[lb]...a[split]
  long pos1=lb;
 
  // текущая позиция чтения из второй последовательности a[split+1]...a[ub]
  long pos2=split+1;
 
  // текущая позиция записи в temp
  long pos3=0;
 
  int *temp = new int[ub-lb+1];
 
  // идет слияние, пока есть хоть один элемент в каждой последовательности
  while (pos1 <= split && pos2 <= ub) {
    if (a[pos1] < a[pos2])
      temp[pos3++] = a[pos1++];
    else
      temp[pos3++] = a[pos2++];
  }
  // одна последовательность закончилась -
  // копировать остаток другой в конец буфера
  while (pos2 <= ub)   // пока вторая последовательность непуста
    temp[pos3++] = a[pos2++];
  while (pos1 <= split)  // пока первая последовательность непуста
    temp[pos3++] = a[pos1++];
 
  // скопировать буфер temp в a[lb]...a[ub]
  for (pos3 = 0; pos3 < ub-lb+1; pos3++)
    a[lb+pos3] = temp[pos3];
 
  delete []temp;
}
 
void mergeSort(int *A, int lb,int  ub)
{
    long split;                   // индекс, по которому делим массив
    if (lb < ub)
    {                // если есть более 1 элемента
        split = (lb + ub)/2;
       // cout << split<<endl;
        mergeSort(A, lb, split);       // сортировать левую половину
        mergeSort(A, split+1, ub);// сортировать правую половину
        merge(A, lb, split, ub);    // слить результаты в общий массив
    }
}
Взять отсюда: http://algolist.manual.ru/sort/merge_sort.php
 
Текущее время: 11:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru