Si partimos de la idea de que un array es una lista de valores situados de izquierda a derecha, mediante
este algoritmo de ordenacin tomamos cada elemento de un array comenzando por la izquierda, y
cuando encontremos un valor que no est en el orden correcto, lo situamos en su posicin adecuada,
desplazando a todos los valores superiores a las posiciones situadas a su derecha.
En el Cdigo fuente 210 se muestra un ejemplo de este tipo de ordenacin.
Public Sub Main()
Dim Valores() As Integer = {10, 20, 30, 50, 60, 40, 70}
Dim Contador As Integer
Dim ValorActual As Integer
Dim Posicion As Integer
' recorrer el array comenzando por la segunda posicin
For Contador = 1 To UBound(Valores)
' obtener el valor correspondiente para comprobar si est en orden
ValorActual = Valores(Contador)
' calcular la posicin con la que vamos a trabajar
Posicion = Contador - 1
While (Posicion >= 1)
' si el valor obtenido no est en el orden correcto,
' dentro de este bucle ir desplazando a las posiciones
' superiores del array los elementos de mayor valor
If ValorActual < Valores(Posicion) Then
Valores(Posicion + 1) = Valores(Posicion)
Posicion = Posicion - 1
Else
Exit While
End If
End While
' situar el valor obtenido en su posicin ordenada
Valores(Posicion + 1) = ValorActual
Next
End Sub
Cdigo fuente 210
No hay comentarios:
Publicar un comentario