1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Семакин
Работа 3.6 Упр.26 ГДЗ Семакин 10 класс (Информатика)
Семакин, Хеннер, Шеина
10 класс
Автор
Семакин, Хеннер, Шеина

Работа 3.6 Упр.26 ГДЗ Семакин 10 класс (Информатика)

Задача

Примечание. Дополнительный массив не использовать.

Подробный ответ

Чтобы получить одну неубывающую последовательность из двух неубывающих последовательностей, удобно последовательно вставлять элементы массива b в массив a на нужное место. Дополнительный массив не нужен: элементы a сдвигаются вправо, освобождая позицию для вставки.

Алгоритм такой:

  • сначала вводим массив a и массив b;
  • для каждого элемента b[i] ищем место вставки в a;
  • если b[i] >= a[n], то просто дописываем его в конец;
  • иначе находим первый элемент a[j], который не меньше b[i], сдвигаем элементы вправо и вставляем b[i] на место a[j];
  • в конце выводим получившуюся последовательность.

var
  a, b: array[1..2*nmax] of integer;
  n, m, i, j, k: integer;
begin
  repeat
    write(‘Размер массива A до ‘, nmax, ‘ n=’);
    readln(n);
  until n in [1..nmax];

  for i := 1 to n do
  begin
    a[i] := 3 * i;
    write(a[i], ‘ ‘);
  end;
  writeln;
  writeln;

  repeat
    write(‘Размер массива B до ‘, nmax, ‘ m=’);
    readln(m);
  until m in [1..nmax];

  for i := 1 to m do
  begin
    b[i] := 2 * i;
    write(b[i], ‘ ‘);
  end;
  writeln;
  writeln;

  for i := 1 to m do
    if b[i] >= a[n] then
    begin
      n := n + 1;
      a[n] := b[i];
    end
    else
    begin
      for j := 1 to n do
        if a[j] >= b[i] then
        begin
          n := n + 1;
          for k := n downto j + 1 do
            a[k] := a[k — 1];
          a[j] := b[i];
          break;
        end;
    end;

  writeln(‘Результат:’);
  for i := 1 to n do
    write(a[i], ‘ ‘);
  readln;
end.

Так как элементы обоих массивов вставляются в правильном порядке, итоговая последовательность остаётся неубывающей.

Ответ

Новая последовательность получается последовательной вставкой элементов массива b в массив a без использования дополнительного массива.



Общая оценка
3.8 / 5
Другие учебники
Другие предметы