Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/35: Рейтинг темы: голосов - 35, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 07.07.2013
Сообщений: 5

Даны два упорядоченных массива. Слить их в третий, но чтобы элементы не повторялись

16.07.2013, 17:38. Показов 7373. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны два упорядоченных массива. Нужно слить их в третий, но чтобы элементы не повторялись. (один проход по массивам)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.07.2013, 17:38
Ответы с готовыми решениями:

Слить два упорядоченных массива в третий
помогите чутка,надо слить два массива в один и упорядочить,создал два упорядоченых массива а как ввести их значения в 3ий не пойму#include...

Даны два упорядоченных массива, каждый из 4 слов. Слить их в один
7. Даны два упорядоченных массива, каждый из 4 слов. Слить их в один.

Слить два лексикографически упорядоченных файла в третий
:'(Примечание. Решение задачи должно быть выполнено как оконное приложение Delphi. Предусмотреть диалог для открытия входных и выходных...

8
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
16.07.2013, 17:54
Слияние двух отсортированых массивов в один
0
49 / 23 / 3
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
16.07.2013, 17:58
в каком виде даны? подробней напиши
0
0 / 0 / 0
Регистрация: 07.07.2013
Сообщений: 5
16.07.2013, 18:11  [ТС]
допустим я ввожу
элементы 1 массива: 1, 7, 9, 11
элементы 2 массива: 1, 2, 3, 5, 6, 6.
3 массив должен получится таким: 1, 2, 3, 5, 6, 7, 9, 11. т.е. не повторяются элементы
0
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
16.07.2013, 18:20
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
#include <algorithm>
#include <iostream>
#include <array>
 
int main()
{
    const size_t size = 0x5; // размер массивов
 
    std::array<int, size> arr1 = { 5, 3, 2, 1, 4 }; // первый массив
    std::array<int, size> arr2 = { 1, 12, 5, 33, 3}; // второй массив
 
    std::sort(arr1.begin(), arr1.end()); // сортируем первый
    std::sort(arr2.begin(), arr2.end()); // сортируем второй
 
    std::array<int, size+size> arr3; // третий массив, размер которого в 2 раза больше
    std::merge(arr1.begin(), arr1.end(), arr2.begin(), arr2.end(), arr3.begin()); // копируем 
    // в 3 массив, елементы 1 и 2
    auto arr3_end = std::unique(arr3.begin(), arr3.end()); // удаляем дубликаты
 
    std::for_each(arr3.begin(), arr3_end, [](int elem) {
        std::cout << elem << ' '; } ); // выводим 3 массив на экран
 
    return 0;
}
1
0 / 0 / 0
Регистрация: 07.07.2013
Сообщений: 5
16.07.2013, 18:22  [ТС]
мне надо без использования функций, и sort
0
16.07.2013, 18:23
Лучший ответ Сообщение было отмечено как решение

Решение

Не по теме:

Цитата Сообщение от ainurahmetgalie Посмотреть сообщение
мне надо без использования функций, и sort
надо, значит делай! Где твои наработки? Или все за тебя написать?

1
0 / 0 / 0
Регистрация: 07.07.2013
Сообщений: 5
16.07.2013, 18:28  [ТС]
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
# include <iostream>
# include <conio.h>
# include <iostream>
# include <conio.h>
 
# include <algorithm>
 
 
using namespace std;
 
 
const int N = 4;
const int M = 7;
 
int a [N], b [M], c [N+M], temp;
 
int main ()
{
   for ( int k=0; k < N; k++ )
      cin >> a [k];           // читаем сами числа массива А
 
   for ( int k=0; k < M; k++ )
      cin >> b [k];           // читаем сами числа массива В
 
/* дурацкое решение - вариант 1
// перекинуть в массив С весь массив А, потом весь массив В
 
   for ( int i=0; i < N; i++)   // перекинуть в начало массива С весь массив А
      c [i] = a [i];
 
   for ( int i=0; i < M; i++)   // перекинуть в продолжение массива С весь массив В
      c [i+N] = b [i];
 
   sort (c, c+N+M);             // сортировка стандартная
*/
 
// СЛИЯНИЕ - вариант-2
// 1 слияние, пока есть числа в обоих массивах
// 2 остаток одного массива перекидывается в конец результата
 
   int i, j, m;
   for ( i=0, j=0, m=0; i < N && j < M; m++ )    // 1 слияние, пока есть числа в обоих массивах
      if ( a [i] < b [j] )                       // в С попадает меньшее из двух чисел Ai Bj
         { c [m] = a [i]; i++; }
      else
         c [m] = b [j], j++;
       if ( i < N )                                  // остаток массива A перекидывается в конец результата
      for ( ; i < N; i++, m++ )
         c [m] = a [i];
   else                                          // остаток массива B перекидывается в конец результата
      for ( ; j < M; j++, m++ )
         c [m] = b [j];
    
 
   for ( int k=0; k < N+M; k++ )
      cout << c [k] << " ";
 
   getch ();
   return 0;
}
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
16.07.2013, 18:32
ainurahmetgalie, я же вам дал ссылку на алгоритмы, там тоже без повторения требуется построить, НО в порядке убывания. посмотрите, переделать очень просто.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.07.2013, 18:32
Помогаю со студенческими работами здесь

"Слить" два массива в третий, меняя элементы первого и второго
Дано два одинаковых по длине одномерных массива. &quot;Слить&quot; их в третий новый массив, меняя элементы первого и второго массивов.

Как слить два упорядоченных массива в один?
Есть два упорядоченных по возрастанию массива. Нужно создать из них третий, чтобы в нем все значения тоже были упорядочены. Ключевой...

Слить два массива в третий
Добрый день! Помогите написать часть программы на встроенном asm,а именно произвести слияние двух массивов в третий(т.е. по коду это str...

Слить два массива A, B по 100 элементов в массив C из 200 элементов так, чтобы элементы массива A имели в C нечетные номера.
2. Слить два массива A, B по 100 элементов в массив C из 200 элементов так, чтобы элементы массива A имели в C нечетные номера. ...

Слить два массива A и B по 100 элементов в массив C из 200 элементов так, чтобы элементы массива A имели в C нечетные номера.
Слить два массива A и B по 100 элементов в массив C из 200 элементов так, чтобы элементы массива A имели в C нечетные номера.


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru