3 / 3 / 2
Регистрация: 19.12.2011
Сообщений: 103

Слияние двух упорядоченных массивов.

29.05.2012, 13:42. Показов 2209. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Элементы каждого из массивов X и Y упорядочены по не убыванию. Объединить элементы этих двух массивов в один массив Z так, чтобы они снова оказались упорядоченными по не убыванию.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.05.2012, 13:42
Ответы с готовыми решениями:

Слияние двух таблиц в третью (Delphi7 + access)
В общем из двух таблиц делаю выборку, в итоговую таблицу не добавляються все поля которые есть в выборке из двух таблиц ... Как сделать так...

Произвести построчное слияние двух матриц А(m,n) и B(k, n), упорядоченных по неубыванию эле¬ментов первого столбца.
Произвести построчное слияние двух матриц А(m,n) и B(k, n), упорядоченных по неубыванию эле¬ментов первого столбца. Есть код...

Слияние двух массивов. Спасайте ;)
Проект1 - нужно упорядочить массив по возрастанию. Сделано. Упорядоченные значения - в текстовом документе 1.тхт, например. Проект2 - то же...

6
29.05.2012, 18:21

Не по теме:

По неубыванию то есть по возрастанию?:scratch:так думаю лучше

1
Почетный модератор
 Аватар для Puporev
64308 / 47605 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
29.05.2012, 18:43
Delphi
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
61
62
63
64
65
66
67
68
69
var
  Form1: TForm1;
  x,y,z:array of integer;
  n,m:integer;
implementation
 
{$R *.dfm}
//создание исходных массивов
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
randomize;
n:=SpinEdit1.Value;
m:=SpinEdit2.Value;
StringGrid1.ColCount:=n;
StringGrid2.ColCount:=m;
StringGrid3.ColCount:=n+m;
Setlength(x,n);
setlength(y,m);
x[0]:=random(5);
for i:=1 to n-1 do
x[i]:=x[i-1]+random(5);
for i:=0 to n-1 do
StringGrid1.Cells[i,0]:=IntToStr(x[i]);
y[0]:=random(5);
for i:=1 to m-1 do
y[i]:=y[i-1]+random(5);
for i:=0 to m-1 do
StringGrid2.Cells[i,0]:=IntToStr(y[i]);
end;
//слияние
procedure TForm1.Button2Click(Sender: TObject);
var i,j,k:integer;
begin
Setlength(z,n+m);
i:=0; j:=0; k:=0; {устанавливаем счётчики}
while (i<n) or (j<m) do {пока не дошли до конца каждого из массивов}
 begin
  if (i<n) and (j<m) then {если оба массива ещё не закончились}
   begin
    if x[i]<y[j] then {то пишем в новый массив меньший из текущих элементов}
     begin
      z[k]:= x[i];
      inc(i); {переходим к следующему элементу соответствующего массива}
      inc(k); {переходим к следующему элементу конечного массива}
     end
    else
     begin
      z[k]:=y[j];
      inc(j);
      inc(k);
     end
   end
  else if j>m-1 then {иначе один из массивов уже закончился}
   begin {и мы пишем из того, в котором ещё есть элементы}
    z[k]:=x[i];
    inc(i);
    inc(k);
   end
  else if i>n-1 then
   begin
    z[k]:=y[j];
    inc(j);
    inc (k);
   end;
 end;
for i:=0 to k-1 do
StringGrid3.Cells[i,0]:=IntToStr(z[i]);
end;
Вложения
Тип файла: zip Слияние двух массивов.zip (240.1 Кб, 32 просмотров)
2
Почетный модератор
 Аватар для Puporev
64308 / 47605 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
29.05.2012, 18:44
Цитата Сообщение от zuxa-zuxa Посмотреть сообщение
По неубыванию то есть по возрастанию
Это разные вещи, возрастание это строго возрастающая последовательность, в отличие от неубывающей.
1
Эксперт Python
 Аватар для dondublon
4643 / 2059 / 363
Регистрация: 17.03.2012
Сообщений: 10,139
Записей в блоге: 6
30.05.2012, 11:40
имхо, можно сначала объединить, потом отсортировать.
примерно так:
Delphi
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
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils, windows, Generics.Collections;
 
 
type
    TMyType = single;
    TMyArray = array of TMyType;
 
var
    arr1, arr2, arrresult: TMyArray;
    i: Integer;
begin
  try
    SetLength(arr1, 10);
    SetLength(arr2, 15);
    for I := 0 to Length(arr1)-1 do
        arr1[i] := Random(10);
    for I := 0 to Length(arr2)-1 do
        arr2[i] := Random(10);
    // заполнили
    // вывод:
    for I := 0 to Length(arr1)-1 do
        write(arr1[i] , ' ' );
    Writeln;
    for I := 0 to Length(arr2)-1 do
        write(arr2[i] , ' ' );
    Writeln;
    Writeln('added:');
 
    // копируем по-быстрому:
    SetLength(arrresult, Length(arr1) + Length(arr2));
    CopyMemory(@arrresult[0], @arr1[0], SizeOf(TMyType) * Length(arr1));
    CopyMemory(@arrresult[Length(arr1)], @arr2[0], SizeOf(TMyType) * Length(arr2));
 
    for I := 0 to Length(arrresult)-1 do
        write(arrresult[i] , ' ' );
 
    // сортируем
    TArray.Sort<TMyType>(arrresult);
    Writeln;
    Writeln('sorted:');
 
    for I := 0 to Length(arrresult)-1 do
        write(arrresult[i] , ' ' );
 
    readln;
 
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
1
Почетный модератор
 Аватар для Puporev
64308 / 47605 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
30.05.2012, 12:22
Цитата Сообщение от dondublon Посмотреть сообщение
можно сначала объединить, потом отсортировать.
Конечно можно, но вероятно у ТС задание на сортировку слиянием...
0
3 / 3 / 2
Регистрация: 19.12.2011
Сообщений: 103
01.06.2012, 01:49  [ТС]
Спасибо огромное
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.06.2012, 01:49
Помогаю со студенческими работами здесь

Сформировать третий массив из упорядоченных по возрастанию значений двух других массивов
Ввести два массива действительных чисел, состоящих из 9 и 7 элементов. Сформировать третий массив из упорядоченных по возрастанию значе- ...

Сформировать третий массив из упорядоченных по возрастанию значений двух заданных массивов
Нужна помощь:cry: Введите два массива действительных чисел, состоящих из 9 и 7 элементов. Сформировать третий массив из упорядоченных по...

Слияние массивов...
Всем Привет, помогите пофиксить программу.. Суть: Дано 2 упорядоченных массива получить 3 упорядоченный методом слияния. Почему...

Слияние массивов
Ребят нужна помощь. есть код нужно маленько доработать. Условие нужно слить 2 массива в 3-ий и упорядочить по возрастанию. Процедура...

Объединение 2-х одномерных массивов(слияние)
Задание: 1.&quot;Заданы два одномерных массива различных размеров. Объединить их в один массив, записав второй массив после максимального...


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

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

Новые блоги и статьи
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru