Preguntas sobre programación de VB, solicite a expertos que las respondan
La programación Vb realiza la fusión de dos matrices ordenadas, es decir, una fusión bidireccional.
La matriz A y la matriz B registran algunos datos respectivamente. Los datos de estas dos matrices se han organizado. ellos en orden de menor a mayor. Utilice VB para escribir un programa que combine estos datos en la misma matriz y organice todos los datos combinados de pequeño a grande.
Se trata de la llamada "fusión bidireccional". Permítanme explicarlo al escribir este programa. En primer lugar, es muy engorroso ingresar una gran cantidad de datos usando la función inputbox (), especialmente en la etapa de depuración, se debe ingresar una gran cantidad de datos cada vez que se ejecuta. Por lo tanto, se adopta el método de entrada de la función ARRAY.
Para que una gran cantidad de datos sea claramente visible al generar, configuramos un cuadro de texto en el formulario en ejecución y configuramos las propiedades del cuadro de texto MultiLine en True y Scorllbars en 2 (con barra de desplazamiento vertical). ).
El código del programa Vb es el siguiente:
Private Sub Form_Click()
Dim a 'define una matriz de tipo variable
a = Matriz(1, 3, 5, 7, 9, 11)
Dim b
b = Matriz(2, 4, 6, 8, 10, 12, 14, 16 , 18)
Dim c(1000)
pa = 0: pb = 0: pc = 0
ea = UBound(a) 'Matriz de variables La Los límites superior e inferior del subíndice de A se pueden obtener usando las funciones UBOUND() y LBOUND() (si no se especifica el límite inferior del subíndice, generalmente es 0)
eb = UBound(b)
Hacer hasta pa > ea y pb > eb
Si pa > ea Entonces ta = b(eb) + 1 Si no ta = a(pa)
Si pb > eb Entonces tb = a(ea) + 1 Si no tb = b(pb)
Si ta < tb Entonces
c(pc) = ta
pc = pc + 1
Si pa <= ea Entonces pa = pa + 1
Si no
c(pc) = tb
pc = pc + 1
Si pb <= eb Entonces pb = pb + 1
Finalizar si
Bucle
Imprimir ea, eb, pc
Text1.Text = "Elementos de la matriz A:" & vbCrLf
For i = 0 To ea
Text1.Text = Text1.Text & a(i ) & " "
Siguiente i
Text1.Text = Text1.Text & vbCrLf & vbCrLf & "Elementos de la matriz A: " & vbCrLf p>
Para i = 0 A eb
Texto1.Texto = Texto1.Texto & b(i) & " "
Siguiente i
Texto1 .Text = Text1.Text & vbCrLf & vbCrLf & "Elementos de B fusionado:" & vbCrLf
For i = 0 To pc
Text1.Text = Text1.Text & c( i) & " "
Siguiente i
End Sub
Por supuesto, puede copiar todos los datos en una matriz y luego usar un algoritmo de clasificación para procesarlos. pero en este caso, no se ha utilizado el orden original de las dos matrices. ¿Podemos utilizar las características del orden original para hacer que el algoritmo sea más eficiente?