Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Арибет
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 6
#1

"слить" 2 массива - C++

03.05.2010, 15:22. Просмотров 771. Ответов 3
Метки нет (Все метки)

помоготи, плиз, с прогой(

есть 2 отсортированных в порядке неубывания массива A[1,N] и B[1,M]. получить отсортированный массив C[1,N+M], состоящий из элементов массивов А и В ("слить" вместе массивы А и В)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2010, 15:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос "слить" 2 массива (C++):

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно". Я так...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс "вентилятор" содержащий в себе классы:...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...

3
g-man
9 / 9 / 1
Регистрация: 02.04.2010
Сообщений: 25
03.05.2010, 20:56 #2
засунь все в третий массив поочередно записав в него элементы первых двух с помощью циклов и сортируй как надо третий массив

C++
1
2
3
4
5
int i;
       for(i = 0; i<N; i++)
       {c[i] = a[i];}
       for(int in = 0; in < M; in++)
       {c[i] = b[in];}
0
valeriikozlov
Эксперт С++
4671 / 2497 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.05.2010, 21:04 #3
Цитата Сообщение от g-man Посмотреть сообщение
засунь все в третий массив поочередно записав в него элементы первых двух с помощью циклов и сортируй как надо третий массив
Это не оптимальный вариант. Оптимальный будет такой:
Создаем новый массив, размерностью N+M - сумма размерностей массивов A и B.
Заводим два счетчика (один для первого массива, второй для второго).
С помощью этих счетчиков двигаемся по массивам слева направо сравнивая элементы массивов. Меньший элемент вставляем в новый массив и увеличиваем счетчик этого массива на 1. И так до конца массивов A и B.
0
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
03.05.2010, 21:05 #4
Цитата Сообщение от g-man Посмотреть сообщение
засунь все в третий массив поочередно записав в него элементы первых двух с помощью циклов и сортируй как надо третий массив
Глупый способ. Тебя факт того, что массивы уже отсортированы не смущает?
Арибет, вот функция, которая сливает два отсортированных по неубыванию массива в один:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int* Merge(const int* arr1, int size1, const int* arr2, int size2)
{
  int* arr_dest = new int[size1 + size2];
 
  int i = 0, j = 0, k = 0;
 
  while(i < size1 && j < size2)
    arr_dest[k++] = (arr1[i] < arr2[j])? arr1[i++] : arr2[j++];
 
  while(i < size1)
    arr_dest[k++] = arr1[i++];
 
  while(j < size2)
    arr_dest[k++] = arr2[j++];
 
  return arr_dest;
}
}
1
03.05.2010, 21:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2010, 21:05
Привет! Вот еще темы с ответами:

В одномерном массиве состоящим из "N" вещественных элементов вычислить сумму элемента массива с не четными "N" - C++
Помогите решить задачу плизз... В одномерном массиве состоящим из &quot;N&quot; вещественных элементов вычислить сумму элемента массива с не...

Для массива из 10 чисел проверить, есть ли в нем два одинаковых числа и напечатать "да" или "нет" - C++
void check_same(const int* a) { for (const int* p = a; p &lt; a + 9; p++) for (const int* q = p+1; q &lt; a + 10; q++) ...

по строкам.замените в слове сочетание "му" на "а" , а букву "ы" на "ца". очень нужно - C++
замените в слове сочетание &quot;му&quot; на &quot;а&quot; , а букву &quot;ы&quot; на &quot;ца&quot;. очень нужно Добавлено через 21 час 4 минуты неужели никто не знает...

Создать иерархию классов "Фирма", "Бухгалтер", "Сотрудник", "Зарплата" - C++
Само по себе понятие &quot;зарплата&quot; не особенно конкретное: оно включает и почасовую, и ставочную зарплату, и комиссионные, и процент с продаж....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru