Consiste en recorrer un array buscando el valor menor; cada vez que se encuentre dicho valor,
intercambiarlo con la posicin actual de recorrido del array, de forma que los valores menores van
quedando ordenados, mientras que los mayores se van desplazando hacia las posiciones superiores,
siendo progresivamente ordenados. Veamos un ejemplo de esta tcnica en el Cdigo fuente 211.
Public Sub Main()
Dim Valores() As Integer = {85, 475, 100, 7, 98, 250}
Dim ContadorA As Integer
Dim ContadorB As Integer
Dim ValorActual As Integer
Dim Posicion As Integer
' recorrer el array
For ContadorA = 0 To UBound(Valores) - 1
' obtener valor de la posicin en curso y nmero de posicin
ValorActual = Valores(ContadorA)
Posicion = ContadorA
' recorrer el array desde la posicin actual ms uno
For ContadorB = ContadorA + 1 To UBound(Valores)
' si el valor del elemento del recorrido interior es
' menor que el valor actual obtenido del recorrido
' externo o principal
If Valores(ContadorB) < ValorActual Then
' tomar el valor hallado como menor
ValorActual = Valores(ContadorB)
Posicion = ContadorB
End If
Next
' intercambiar valores, situando el valor menor en la
' posicin inferior y el mayor en la posicin superior
Valores(Posicion) = Valores(ContadorA)
Valores(ContadorA) = ValorActual
Next
End Sub
Cdigo fuente 211
No hay comentarios:
Publicar un comentario