¡VB! Escriba una demostración de clasificación de burbujas usando una matriz. El programa demuestra el resultado de ordenar una matriz después de intercambiar elementos adyacentes en cada bucle del método de burbujas.
Debido a que es una demostración de animación, la dificultad de este problema radica en el evento del temporizador del control del temporizador. Está construido para simular un bucle de clasificación de burbujas de dos niveles. , necesitamos dos Hay variables de bucle i y j. Aquí usamos i para controlar el bucle externo y j para controlar el bucle interno. Luego, necesitamos una matriz arr, una variable acumuladora n para contar el número de bucles y una variable de área de almacenamiento temporal m para clasificar burbujas. Por lo tanto, necesitamos definir las cinco variables anteriores en la parte superior del módulo de la siguiente manera: Dim?arr
Dim?i?as?integer,?j?as?integer,?m?as?integer ,n es un número entero
Entonces, cuando hacemos clic en iniciar, de acuerdo con su pregunta, primero debe completar la lectura del número del cuadro de texto1 en la matriz arr, y luego inicializar las variables del bucle interno y externo y comenzar el temporizador, entonces el código es el siguiente: Private?sub?command1_ Click()
arr?=?Split(TextBox1.Text,?" ?") ?' >i?=?UBound (arr) ?-?1?'Inicializar el valor inicial del bucle externo
j?=?0'Inicializar el valor inicial del bucle interno
Timer1.Enabled?=?True' El control de tiempo está en funcionamiento
End?Sub
Dentro del control Timer1 lo que tenemos que hacer es mostrar el valor de cada bucle en Textbox2, y luego use el siguiente código para procesar las diversas variables: private?sub?Timer1_Timer()
If?arr(j)? >?arr(j?+?1)?entonces 'determinar'. si el número anterior es mayor que el último, intercambie los dos números, así los números eventualmente se ordenarán en orden ascendente
m?=?arr(j)
arr( j)? =?arr(j?+?1)
arr(j?+?1)? =?m
End?If 'Declaración condicional de tipo burbuja'
n?=?n?+?1 'Calcular el número de bucles
TextBox2.Text?=?Join(arr,?" ?")
TextBox3.Text?=?n
j?= ?j?+?1
Si?j?=?i?+?1?Entonces??1?:?j ?=?0?'La variable del bucle interno j es mayor que el valor de i. Luego procese el valor de i, ingrese al ciclo del siguiente nivel e inicialice los valores de i y j
¿Fin?