16 / 16 / 3
Регистрация: 20.01.2009
Сообщений: 23
1

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

26.01.2009, 19:50. Показов 6778. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
это слияние двух упорядоченных массивов в один упорядоченный, программу я сама напишу, тока помогите немного врубиться

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Program SlivSort;
Var A,B : array[1..1000] of integer;
N : integer;
Procedure Sliv(p,q : integer); {процедура сливающая массивы}
Var r,i,j,k : integer;
Begin
r:=(p+q) div 2;
i:=p;
j:=r+1;
for k:=p to q do
if (i<=r) and ((j>q) or (a<a[j]))>;
i:=i+1;
end
else
begin
b[k]:=a[j];
j:=j+1;
end ;
for k:=p to q do
a[k]:=b[k];
End;
Procedure Sort(p,q : integer); {p,q — индексы начала и конца сортируемой части массива}
Begin
if p
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2009, 19:50
Ответы с готовыми решениями:

Слияние двух упорядоченных списков в один упорядоченный
Даны два списка упорядоченные по не убыванию.Объединить их в третий список упорядоченный по не...

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

Из двух упорядоченных массивов сформируйте одномерный массив, упорядоченный в обратную сторону
Из двух упорядоченных одномерных массивов (длины K и N) сформируйте одномерный массив размером K+N,...

Объединить два упорядоченных по неубыванию списка М1 и М2 в один упорядоченный
Написать программу, содержащую процедуру, которая объединяет два упорядоченных по неубыванию списка...

3
4 / 4 / 0
Регистрация: 18.06.2009
Сообщений: 64
24.12.2009, 14:35 2
Что-то она не закончена
0
1063 / 130 / 34
Регистрация: 09.10.2009
Сообщений: 271
24.12.2009, 16:12 3
Pascal
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
{============================================================================}
 {слияние 2 уже отсортиров. массивов - передаем их - A, B - в массив C , 
  dlA,dlB-kol-vo кол-во элементов в сливаемых массивах}
 procedure Merge(dlA,dlB: integer; var A,B,C: massiv);
 var i, j,k,l: integer;
 begin
  i:=1; j:=1; k:=0;
  while (i<=dlA) and (j<=dlB) do {пока не пройдем один из массивов целиком }
  begin k:=k+1;
        if A[i]<B[j] then {берем меньший из эл-тов массива и кладем его в новый массив}
        begin C[k] := A[i]; i:= i+1;
        end
        else
        begin C[k] := B[j]; j:= j+1;
        end;
  end;
  if i<=dlA then {что-то осталось в массиве A - оставшуюся часть кладем в результирующий массив}
     for l:=i to dlA do
     begin k:=k+1; C[k] := A[l];
     end
  else {что-то осталось в массиве с указателем pB1}
     for l :=j to dlB do
     begin k:=k+1 ; C[k] := B[l];
     end;
 end;
3
1915 / 1065 / 384
Регистрация: 06.12.2008
Сообщений: 2,802
24.12.2009, 16:34 4
Pascal
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
uses crt;
const Max=5;
var a,b:array[1..Max] of integer;
    c:array[1..2*Max] of integer;
    k,l,m:integer;
 begin
  ClrScr;
  Writeln('Объединение двух упорядоченных массивов');
  Writeln('Введите элементы первого массива*');
  Write('(',Max,' целых чисел) ->');
   for k:=1 to Max do
    begin
     Read(a[k]);
    end;
  Writeln('Введите элементы второго массива*');
  Write('(',Max,' целых чисел) ->');
   for l:=1 to Max do
    begin
     Read(b[l]);
    end;
  k:=1;
  l:=1;
  m:=1;
   repeat
    if a[k]<b[l] then
     begin
      c[m]:=a[k];
      m:=m+1;
      k:=k+1;
     end
    else
     if a[k]>b[l] then
      begin
       c[m]:=b[l];
       m:=m+1;
       l:=l+1;
      end
     else
      begin
       c[m]:=a[k];
       c[m+1]:=b[l];
       k:=k+1;
       l:=l+1;
       m:=m+2;
      end;
   until (k>Max) or (l>Max);
  while k<=Max do
   begin
    c[m]:=a[k];
    k:=k+1;
    m:=m+1;
   end;
  while l<=Max do
   begin
    c[m]:=b[l];
    l:=l+1;
    m:=m+1;
   end;
  Writeln('Массив результат');
   for m:=1 to 2*Max do
    Write(c[m],' ');
  Writeln;
  Writeln('Для завершения нажмите Enter!');
  Readkey;
 end.
2
24.12.2009, 16:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2009, 16:34
Помогаю со студенческими работами здесь

Дано два упорядоченных целочисленных массива. Объединить их в один упорядоченный.
Дано два упорядоченных целочисленных массива. Объединить их в один упорядоченный. помогите...

Слияние двух упорядоченных файлов
Здравствуйте.Помогите пожалуйста решить задачу: Создать два файла А и В из целых чисел. Файл А...

Слияние двух упорядоченных массивов.
Вот условие задачи: Из двух упорядоченных по невозрастанию массивов A(M) и B(N) получить путем...

Из двух упорядоченных одномерных массивов (длины K и N) сформируйте одномерный массив размером K+N, упорядоченный в обратную сторону
вот, что получилось, как-то не очень работает program zd115; uses crt; var b:array of...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru