По разделам

 

Решение задачи Array 64


Даны три целочисленных массива A, B и C размера NA, NB, NC соответственно, элементы которых упорядочены по убыванию. Объединить эти массивы так, чтобы результирующий целочисленный массив D (размера NA + NB + NC) остался упорядоченным по убыванию.

Код (C/C++)

#include <stdio.h>
int main(void)
{
    float a[10],b[10],c[10],d[30];
 
    int na,nb,nc,nd,k;
 
    printf("Na: ");
    scanf("%i",&na);
 
    for (k=0; k<na; ++k){
        printf("a[%i] : ",k+1);
        scanf("%f",&a[k]);
    }
 
    printf("Nb: ");
    scanf("%i",&nb);
 
    for (k=0; k<nb; ++k){
        printf("b[%i] : ",k+1);
        scanf("%f",&b[k]);
    }
 
    printf("Nc: ");
    scanf("%i",&nc);
 
    for (k=0; k<nc; ++k){
        printf("c[%i] : ",k+1);
        scanf("%f",&c[k]);
    }
    nd=na+nb+nc;
 
    int ka=0,kb=0,kc=0;
 
    for (k=0; k<nd; ++k){
        if ((ka<na) &&((kb>=nb)||(a[ka]>=b[kb]))&&((kc>=nc)||(a[ka]>c[kc]))){
                d[k]=a[ka];
                ++ka;
        }else if ((kb<nb) && ((kc>=nc)||(b[kb]>c[kc]))){
                d[k]=b[kb];
                ++kb;
        } else {
                d[k]=c[kc];
                ++kc;
        }
    }
    printf("D: \n");
    for (k=0; k<nd; ++k) printf("  %i: %f\n",k+1,d[k]);
 
    return 0;
}

Код (Python)

import random

def Merge(a,b,N_a,N_b):
    L = []
    i = 0
    a_idx = 0
    b_idx = 0
    while i < (N_a+N_b) and a_idx < N_a and b_idx < N_b :
    ##    print("i:",i,"; a_idx:",a_idx,"; b_idx:",b_idx)
        if a[a_idx] == b[b_idx] :
            L.append(a[a_idx])
            L.append(b[b_idx])
            a_idx += 1
            b_idx += 1
            i += 2
        elif a[a_idx] > b[b_idx] :
            L.append(a[a_idx])
            a_idx += 1
            i += 1
        else :
            L.append(b[b_idx])
            b_idx += 1
            i += 1
    if a_idx == N_a :
        while b_idx < N_b :
            L.append(b[b_idx])
            b_idx += 1
    if b_idx == N_b :
        while a_idx < N_a :
            L.append(a[a_idx])
            a_idx += 1

    return L
        

N = random.randrange(2,6)
a = sorted([random.randrange(0,10) for i in range(N)],reverse = True)
b = sorted([random.randrange(0,10) for i in range(N)],reverse = True)

 

c = sorted([random.randrange(0,10) for i in range(N)],reverse = True)

print("N:",N)
print("Array a:\n",a)
print("Array b:\n",b)
print("Array c:\n",c)

d = sorted(a+b+c,reverse = True)

print("Length of d:\n",len(d))
print("Array c:\n",d)

d2 = Merge(a,b,N,N)
d2 = Merge(d2,c,N*2,N)

print("Length of d2:\n",len(d2))
print("Array d2:\n",d2)
									

Код (Pascal)

program Array64;
 
type
 MyArray = array[1..30] of integer;
 
var
  a,b,c,d,ab: MyArray;
  NA,NB,NC,k:Integer;
 
Function ConnectionArray(a,b:MyArray;NA,NB:Integer):MyArray;
  var
   tempArray: MyArray;
   i,ia,ib:integer;
  begin
   ia:=1;
   ib:=1;
   for i:=1 to NA+NB do
    begin
     if ia>NA then
      begin
       tempArray[i]:=b[ib];
       inc(ib);
      end
     else
     if ib>NB then
      begin
       tempArray[i]:=a[ia];
       inc(ia);
      end
     else
     if a[ia]>b[ib] then
      begin
       tempArray[i]:=a[ia];
       inc(ia);
      end
     else
      begin
       tempArray[i]:=b[ib];
       inc(ib);
      end;
 
    end;
    ConnectionArray:=tempArray;
  end;
 
begin
  Write('NA: ');
  Readln(NA);
 
  Writeln('A: ');
  for k:=1 to NA do
   begin
    write(k,' :');
    readln(a[k]);
   end;
  Write('NB: ');
  Readln(NB);
 
  Writeln('B: ');
  for k:=1 to NB do
   begin
    write(k,' :');
    readln(b[k]);
   end;
 
  Write('NC: ');
  Readln(NC);
 
  Writeln('C: ');
  for k:=1 to NC do
   begin
    write(k,' :');
    readln(c[k]);
   end;
//------------------------------
  ab:=ConnectionArray(a,b,NA,NB);
  d:=ConnectionArray(ab,c,NA+NB,NC);
 
  Writeln('D(',NA+NB+NC,'):');
  for k:=1 to NA+NB+NC do writeln(k,' :',d[k]);
end.
									




Array. Абрамян
Array 1 Просмотров: 10053
Array 2 Просмотров: 6952
Array 3 Просмотров: 5665
Array 4 Просмотров: 4834
Array 5 Просмотров: 6540
Array 6 Просмотров: 4496
Array 7 Просмотров: 4402
Array 8 Просмотров: 4689
Array 9 Просмотров: 4213
Array 10 Просмотров: 3870
Array 11 Просмотров: 4636
Array 12 Просмотров: 3717
Array 13 Просмотров: 3304
Array 14 Просмотров: 2808
Array 15 Просмотров: 4360
Array 16 Просмотров: 3374
Array 17 Просмотров: 3260
Array 18 Просмотров: 4369
Array 19 Просмотров: 2899
Array 20 Просмотров: 4616
Array 21 Просмотров: 2634
Array 22 Просмотров: 2383
Array 23 Просмотров: 2805
Array 24 Просмотров: 2622
Array 25 Просмотров: 2167
Array 26 Просмотров: 2829
Array 27 Просмотров: 2325
Array 28 Просмотров: 3025
Array 29 Просмотров: 1754
Array 30 Просмотров: 2572
Array 31 Просмотров: 2021
Array 32 Просмотров: 2402
Array 33 Просмотров: 1767
Array 34 Просмотров: 2071
Array 35 Просмотров: 1451
Array 36 Просмотров: 1533
Array 37 Просмотров: 3041
Array 38 Просмотров: 1615
Array 39 Просмотров: 1666
Array 40 Просмотров: 1877
Array 41 Просмотров: 1686
Array 42 Просмотров: 1338
Array 43 Просмотров: 1608
Array 44 Просмотров: 1483
Array 45 Просмотров: 1541
Array 46 Просмотров: 1348
Array 47 Просмотров: 1776
Array 48 Просмотров: 2879
Array 49 Просмотров: 1759
Array 50 Просмотров: 1304
Array 51 Просмотров: 2111
Array 52 Просмотров: 1952
Array 53 Просмотров: 1504
Array 54 Просмотров: 1497
Array 55 Просмотров: 1372
Array 56 Просмотров: 1227
Array 57 Просмотров: 1462
Array 58 Просмотров: 1365
Array 59 Просмотров: 1743
Array 60 Просмотров: 1260
Array 61 Просмотров: 1212
Array 62 Просмотров: 2071
Array 63 Просмотров: 1615
Array 64 Просмотров: 1327
Array 65 Просмотров: 1705
Array 66 Просмотров: 1550
Array 67 Просмотров: 1268
Array 68 Просмотров: 2423
Array 69 Просмотров: 1842
Array 70 Просмотров: 1731
Array 71 Просмотров: 1454
Array 72 Просмотров: 1374
Array 73 Просмотров: 1155
Array 74 Просмотров: 1393
Array 75 Просмотров: 1566
Array 76 Просмотров: 1384
Array 77 Просмотров: 1174
Array 78 Просмотров: 1386
Array 79 Просмотров: 1154
Array 80 Просмотров: 1130
Array 81 Просмотров: 1041
Array 82 Просмотров: 929
Array 83 Просмотров: 846
Array 84 Просмотров: 837
Array 85 Просмотров: 984
Array 86 Просмотров: 1453
Array 87 Просмотров: 841
Array 88 Просмотров: 894
Array 89 Просмотров: 933
Array 90 Просмотров: 1722
Array 91 Просмотров: 1081
Array 92 Просмотров: 1328
Array 93 Просмотров: 1326
Array 94 Просмотров: 1136
Array 95 Просмотров: 1542
Array 96 Просмотров: 1263
Array 97 Просмотров: 1136
Array 98 Просмотров: 1851
Array 99 Просмотров: 1089
Array 100 Просмотров: 1052
Array 101 Просмотров: 1101
Array 102 Просмотров: 831
Array 103 Просмотров: 897
Array 104 Просмотров: 876
Array 105 Просмотров: 705
Array 106 Просмотров: 1091
Array 107 Просмотров: 930
Array 108 Просмотров: 991
Array 109 Просмотров: 925
Array 110 Просмотров: 998
Array 111 Просмотров: 871
Array 112 Просмотров: 1685
Array 113 Просмотров: 1205
Array 114 Просмотров: 1049
Array 115 Просмотров: 1163
Array 116 Просмотров: 2113
Array 117 Просмотров: 1600
Array 118 Просмотров: 865
Array 119 Просмотров: 762
Array 120 Просмотров: 939
Array 121 Просмотров: 884
Array 122 Просмотров: 955
Array 123 Просмотров: 912
Array 124 Просмотров: 785
Array 125 Просмотров: 811
Array 126 Просмотров: 749
Array 127 Просмотров: 756
Array 128 Просмотров: 830
Array 129 Просмотров: 834
Array 130 Просмотров: 872
Array 131 Просмотров: 1064
Array 132 Просмотров: 838
Array 133 Просмотров: 753
Array 134 Просмотров: 1175
Array 135 Просмотров: 664
Array 136 Просмотров: 884
Array 137 Просмотров: 763
Array 138 Просмотров: 684
Array 139 Просмотров: 836
Array 140 Просмотров: 1370

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться



Заявка на расчет