Объединить массивы так, чтобы результирующий массив остался упорядоченным по убыванию - VB

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Объединить массивы так, чтобы результирующий массив остался упорядоченным по убыванию»

textual
Листинг программы
Sub Merge2(A() As Integer, B() As Integer, R() As Integer)
 
   ia% = LBound(A, 1)
   ib% = LBound(B, 1)
   ir% = 0
   
   Do
   
      ca% = A(ia%)
      cb% = B(ib%)
            
      If ca% >= cb% Then
         ir% = ir% + 1
         R(ir%) = ca%
         ia% = ia% + 1
      Else
         ir% = ir% + 1
         R(ir%) = cb%
         ib% = ib% + 1
      End If
      
      If (ia% > UBound(A, 1)) Then
         For i% = ib% To UBound(B, 1)
             ir% = ir% + 1
             R(ir%) = B(i%)
         Next i%
         Exit Do
      End If
      
      If (ib% > UBound(B, 1)) Then
         For i% = ia% To UBound(A, 1)
             ir% = ir% + 1
             R(ir%) = A(i%)
         Next i%
         Exit Do
      End If
   
   Loop
 
End Sub
 
Sub Merge3(A() As Integer, B() As Integer, C() As Integer, R() As Integer)
 
Dim Tmp() As Integer
 
    n1% = UBound(A, 1) - LBound(A, 1) + 1
    n2% = UBound(B, 1) - LBound(B, 1) + 1
 
    n3% = n1% + n2%
    
    ReDim Tmp(1 To n3%) As Integer
    
    Merge2 A, B, Tmp
    
    Merge2 Tmp, C, R
 
End Sub
 
Sub Task()
 
Dim A(1 To 10) As Integer
Dim B(1 To 4) As Integer
Dim C(1 To 5) As Integer
 
Dim R(1 To 19) As Integer
 
    A(1) = 10
    A(2) = 8
    A(3) = 7
    A(4) = 6
    A(5) = 5
    A(6) = 4
    A(7) = 4
    A(8) = 3
    A(9) = 3
    A(10) = 0
 
    B(1) = 10
    B(2) = 8
    B(3) = 7
    B(4) = 6
 
    C(1) = -9
    C(2) = -11
    C(3) = -12
    C(4) = -54
    C(5) = -154
 
    Merge3 A, B, C, R
 
    For i% = 1 To 19
        Debug.Print R(i%)
    Next i%
 
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы