- Главная
- Информатика
- Слияние 2-х упорядоченных массивов
Содержание
- 2. Имеются два упорядоченных по возрастанию (предыдущий элемент меньше последующего) массива. Требуется получить третий упорядоченный по возрастанию
- 3. Алгоритм и особенности решения задачи. Для начала надо определиться, как у нас будут формироваться первые два
- 4. const N = 7; var arr1,arr2: array[1..N] of integer; arr3: array[1..N+N] of integer; i,j,k,m: byte; begin
- 5. i := 1; j := 1; k := 1; while (i begin if arr1[i] begin arr3[k]
- 7. Скачать презентацию
Слайд 2Имеются два упорядоченных по возрастанию (предыдущий элемент меньше последующего) массива. Требуется получить
Имеются два упорядоченных по возрастанию (предыдущий элемент меньше последующего) массива. Требуется получить
третий упорядоченный по возрастанию массив, путем слияния первых двух.
Например.
Если 1-й массив: 4, 8, 12, 14, 23, 85, а 2-й массив: 2, 4, 8, 9, 12, 16, тогда 3-й массив будет таким: 2, 4, 4, 8, 8, 9, 12, 12, 14, 16, 23, 85.
Например.
Если 1-й массив: 4, 8, 12, 14, 23, 85, а 2-й массив: 2, 4, 8, 9, 12, 16, тогда 3-й массив будет таким: 2, 4, 4, 8, 8, 9, 12, 12, 14, 16, 23, 85.
Слайд 3Алгоритм и особенности решения задачи.
Для начала надо определиться, как у нас будут
Алгоритм и особенности решения задачи.
Для начала надо определиться, как у нас будут
формироваться первые два массива. Использование random нам не подходит, т.к. массивы должны быть упорядоченными. Будем вводить данные с клавиатуры.
Длина третьего массива равна сумме двух первых.
Элементы под текущими для каждого массива индексами сравниваются, и меньший по значению записывается в третий массив. При этом индекс массива, из которого элемент был скопирован в третий массив, должен увеличиться.
Может возникнуть ситуация, когда один массив закончился, а второй еще нет. Поэтому в программе должен быть организован цикл записи возможного окончания как первого так и второго массива.
Длина третьего массива равна сумме двух первых.
Элементы под текущими для каждого массива индексами сравниваются, и меньший по значению записывается в третий массив. При этом индекс массива, из которого элемент был скопирован в третий массив, должен увеличиться.
Может возникнуть ситуация, когда один массив закончился, а второй еще нет. Поэтому в программе должен быть организован цикл записи возможного окончания как первого так и второго массива.
Слайд 4const N = 7;
var arr1,arr2: array[1..N] of integer;
arr3: array[1..N+N] of
const N = 7;
var arr1,arr2: array[1..N] of integer;
arr3: array[1..N+N] of
integer;
i,j,k,m: byte;
begin
writeln('Заполните первый массив:');
for i := 1 to N do read(arr1[i]);
writeln('Заполните второй массив:');
for i := 1 to N do read(arr2[i]);
i,j,k,m: byte;
begin
writeln('Заполните первый массив:');
for i := 1 to N do read(arr1[i]);
writeln('Заполните второй массив:');
for i := 1 to N do read(arr2[i]);
Слайд 5i := 1; j := 1; k := 1;
while (i <=
i := 1; j := 1; k := 1;
while (i <=
N) and (j <= N) do
begin
if arr1[i] < arr2[j] then
begin arr3[k] := arr1[i]; i := i + 1 end
else begin arr3[k] := arr2[j]; j := j + 1 end;
k := k + 1;
end;
begin
if arr1[i] < arr2[j] then
begin arr3[k] := arr1[i]; i := i + 1 end
else begin arr3[k] := arr2[j]; j := j + 1 end;
k := k + 1;
end;
- Предыдущая
Общество и природаСледующая -
Project presentation