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

Соединить 2 упорядоченных массива. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
BOR1K
 Аватар для BOR1K
14 / 14 / 4
Регистрация: 19.09.2009
Сообщений: 289
11.02.2010, 14:56     Соединить 2 упорядоченных массива. #1
Соединить 2 упорядоченных массива.
X(1)<=X(2)<=X(3) и Y(1)<=Y(2)<=Y(3) в массив Z(1)<=Z(2)<=Z(3)

Проблема в том, что каждые элемент должен входит только один раз. Подскажите как реализовать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2010, 14:56     Соединить 2 упорядоченных массива.
Посмотрите здесь:

C++ Даны 2 упорядоченных одномерных массива. создать 3 одномерный массив, содержащий упорядоченные элементы 1 и 2 массива.
C++ Даны два массива, упорядоченных по возрастанию
Даны два упорядоченных массива. Слить их в третий, но чтобы элементы не повторялись C++
Обьединить два упорядоченных по возростанию массива в один также упорядочнный C++
Записать в файл 3 упорядоченных массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BornLeader
50 / 46 / 1
Регистрация: 16.05.2008
Сообщений: 162
11.02.2010, 15:30     Соединить 2 упорядоченных массива. #2
а размерность массива в итоге должна быть величиной случайной или фиксированной?
BOR1K
 Аватар для BOR1K
14 / 14 / 4
Регистрация: 19.09.2009
Сообщений: 289
11.02.2010, 15:33  [ТС]     Соединить 2 упорядоченных массива. #3
Фиксированная, 3 массив должен быть суммой размеров 1 и 2.
BornLeader
50 / 46 / 1
Регистрация: 16.05.2008
Сообщений: 162
11.02.2010, 15:38     Соединить 2 упорядоченных массива. #4
А если у нас какой-либо элемент повторился то какая длина должна получиться? 5 или 6
darkAngel
Технофашист
206 / 187 / 3
Регистрация: 11.03.2009
Сообщений: 829
11.02.2010, 16:02     Соединить 2 упорядоченных массива. #5
Сортировка Слиянием (описание алгоритма здесь - http://www.citforum.ru/programming/t...rting1.shtml#2)

Проблема в том, что каждые элемент должен входит только один раз. Подскажите как реализовать
А это просто. В алгоритме этой сортировки сравниваются пары элементов. Есть усливе <, есть условие >. Дак вот тебе будет достаточно добавить условие равности элементов (=). Если элементы равны, то оставляем один элемент, а второй предельно увеличиваем. В итоге эти элементы сместятся в конец массива (т.к. они самые большие), после чего, в конце работы программы, можно просто "обрезать" конец массива с этими элементами.
BornLeader
50 / 46 / 1
Регистрация: 16.05.2008
Сообщений: 162
11.02.2010, 16:53     Соединить 2 упорядоченных массива. #6
Короче
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
#include <iostream>
#include <set>
using namespace std;
 
template <class T>
void ArrayToSet(T* t,int size, set<T> &dest) 
{
  for(int i=0;i<size;i++)
    dest.insert(t[i]);
}
 
template <class T>
void Print(set<T> &dest) 
{
  for(set<T>::iterator iter = dest.begin();iter!=dest.end();iter++)
    cout << (*iter) << " ";
  cout << endl;
}
 
int main(void)
{
  const int size = 3;
  int array1[size] = {1,3,5};
  int array2[size] = {4,5,6};
  set<int> dest;
  ArrayToSet(array1,size,dest);
  ArrayToSet(array2,size,dest);
  Print(dest);
  return 0;
}
BOR1K
 Аватар для BOR1K
14 / 14 / 4
Регистрация: 19.09.2009
Сообщений: 289
11.02.2010, 18:39  [ТС]     Соединить 2 упорядоченных массива. #7
Что такое set<int> dest ??
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2010, 10:28     Соединить 2 упорядоченных массива.
Еще ссылки по теме:

C++ Объединить два упорядоченных по возрастанию массива в один. Нужны комментарии
Объединить два упорядоченных по неубыванию массива в один C++
C++ Объединить два упорядоченных массива в один

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
BornLeader
50 / 46 / 1
Регистрация: 16.05.2008
Сообщений: 162
12.02.2010, 10:28     Соединить 2 упорядоченных массива. #8
Цитата Сообщение от BOR1K Посмотреть сообщение
Что такое set dest ??
контейнерный тип (stl)
Yandex
Объявления
12.02.2010, 10:28     Соединить 2 упорядоченных массива.
Ответ Создать тему
Опции темы

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