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

Соединить их в один упорядоченный массив F. Число сравнений не должно превышать m+n - C++

Восстановить пароль Регистрация
 
ssvetusik
0 / 0 / 0
Регистрация: 25.01.2010
Сообщений: 9
16.10.2013, 08:28     Соединить их в один упорядоченный массив F. Число сравнений не должно превышать m+n #1
Даны два упорядоченных набора чисел C1, C2, ..., Cn и D1, D2, ..., Dm. Соединить их в один упорядоченный массив F. Число сравнений не должно превышать m+n.
Не могу понять Число сравнений не должно превышать m+n., если не трудно подскажите
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2013, 08:28     Соединить их в один упорядоченный массив F. Число сравнений не должно превышать m+n
Посмотрите здесь:

C++ Массив: Сформируйте массив C[n+m], состоящий из элементов массивов А и В, упорядоченный по возрастанию.
C++ quick sort, нужно посчитать число сравнений
C++ Массив: Вывести на экран элементы массива, квадрат которых не будет превышать N
Дан упорядоченный по неубыванию массив A из N чисел и число X C++
C++ как соединить массив символов и один символ
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kamre
126 / 130 / 4
Регистрация: 25.12.2011
Сообщений: 438
16.10.2013, 08:53     Соединить их в один упорядоченный массив F. Число сравнений не должно превышать m+n #2
Цитата Сообщение от ssvetusik Посмотреть сообщение
Число сравнений не должно превышать m+n., если не трудно подскажите
std::merge
ssvetusik
0 / 0 / 0
Регистрация: 25.01.2010
Сообщений: 9
16.10.2013, 09:00  [ТС]     Соединить их в один упорядоченный массив F. Число сравнений не должно превышать m+n #3
может кто подскажет как сделать в цикле?Брат попросил помочь с учебой, а они такое еще не проходили
govorov
24 / 24 / 3
Регистрация: 25.09.2013
Сообщений: 76
16.10.2013, 09:18     Соединить их в один упорядоченный массив F. Число сравнений не должно превышать m+n #4
Наверное примерно так можно: Проходим по массиву С и находим такой Сi, что Сi < D1, а Сi+1 < D1. Затем между Сi и Сi+1 вставляем D1, D2, ..., Dk, пока Dk < Сi+1. Затем ищем следующее место уже для Dk+1 и вся процедура повторяется. Число Сравнений = m+n, т.к. проходим по массиву С (n сравнений) и сравниваем каждый элемент из D (когда вставляем, еще m сравнений).
kamre
126 / 130 / 4
Регистрация: 25.12.2011
Сообщений: 438
16.10.2013, 09:38     Соединить их в один упорядоченный массив F. Число сравнений не должно превышать m+n #5
Цитата Сообщение от ssvetusik Посмотреть сообщение
может кто подскажет как сделать в цикле?
По ссылке выше есть цикл:
C++
1
2
3
4
5
6
7
8
9
10
11
template <class InputIterator1, class InputIterator2, class OutputIterator>
  OutputIterator merge (InputIterator1 first1, InputIterator1 last1,
                        InputIterator2 first2, InputIterator2 last2,
                        OutputIterator result)
{
  while (true) {
    *result++ = (*first2<*first1)? *first2++ : *first1++;
    if (first1==last1) return std::copy(first2,last2,result);
    if (first2==last2) return std::copy(first1,last1,result);
  }
}
ssvetusik
0 / 0 / 0
Регистрация: 25.01.2010
Сообщений: 9
16.10.2013, 10:16  [ТС]     Соединить их в один упорядоченный массив F. Число сравнений не должно превышать m+n #6
kamre, это слишком для него сложно, ну т.е. они С++ проходят на начальном уровне
Спасибо
Yandex
Объявления
16.10.2013, 10:16     Соединить их в один упорядоченный массив F. Число сравнений не должно превышать m+n
Ответ Создать тему
Опции темы

Текущее время: 02:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru