Объединить массивы так, чтобы результирующий массив остался упорядоченным по убыванию - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д