Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 3
1

Получить третий массив методом слияния первых двух массивов

06.07.2016, 11:12. Показов 1337. Ответов 2
Метки нет (Все метки)

Даны два одномерных числовых массива, упорядоченных по возрастанию. Получить третий массив методом слияния первых двух массивов.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.07.2016, 11:12
Ответы с готовыми решениями:

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

Получить третий массив путем сложения соответствующих элементов первых двух
Задать два двумерных массива одного размера. Получить третий массив путем сложения соответствующих...

Получить третий упорядоченный по возрастанию массив путем слияния первых двух
Задание: Имеются два упорядоченных по возрастанию (предыдущий элемент меньше последующего) массива....

Создать третий массив того же размера, каждый элемент которого равен сумме соответствующих элементов двух первых массивов
Даны два двумерных массива размером nxm.Создать третий массив того же размера, каждый элемент...

2
Модератор
64056 / 47472 / 32727
Регистрация: 18.05.2008
Сообщений: 115,185
06.07.2016, 11:42 2
Сортировки
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5773 / 3473 / 2454
Регистрация: 22.11.2013
Сообщений: 9,778
Записей в блоге: 1
08.07.2016, 14:50 3
Лучший ответ Сообщение было отмечено chainih как решение

Решение

В предложенном выше варианте можно сэкономить на сравнениях внутри цикла:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
  k:=0; i:=1; j:=1;
  while (i<=n) and (j<=m) do
    if a[i]<b[j] then begin
      Inc(k); c[k]:=a[i]; Inc(i);
    end else begin
      Inc(k); c[k]:=b[j]; Inc(j);
    end;
  while i<=n do begin
    Inc(k); c[k]:=a[i]; Inc(i);
  end;
  while j<=m do begin
    Inc(k); c[k]:=b[j]; Inc(j);
  end;
или
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
  k:=0; i:=1; j:=1;
  while (i<=n) and (j<=m) do
    if a[i]<b[j] then begin
      Inc(k); c[k]:=a[i]; Inc(i);
    end else begin
      Inc(k); c[k]:=b[j]; Inc(j);
    end;
  for i:=i to n do begin
    Inc(k); c[k]:=a[i];
  end;
  for j:=j to m do begin
    Inc(k); c[k]:=b[j];
  end;
По завершении первого цикла остается переписать хвост одного из массивов.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.07.2016, 14:50

Получить упорядоченный по не возрастанию массив методом слияния двух упорядоченных по не убыванию массивов
Заданы от одного до трех числовых массивов. Составить программу, которая вводит и печатает исходные...

Массив: Из двух упорядоченных по невозрастанию массивов А(n) и В(n) получить путем слияния упорядоченный по убыванию массив С
Из двух упорядоченных по невозрастанию массивов А(n) и В(n) получить путем слияния упорядоченный по...

Сформировать третий массив, состоящий из элементов первых двух массивов по правилу
У нас есть два массива, состоящих из целых чисел ( максимум 10 элементов в каждом ). Требуется...

Получить третий массив из элементов первых двух, расположив их в порядке убывания
Заданы два одномерных массива. Получить третий массив из элементов первых двух, расположив их в...


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

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

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