El
método de ordenamiento por selección consiste en encontrar el menor de todos
los elementos del arreglo e intercambiarlo con el que está en la primera
posición. Luego el segundo más pequeño, y así sucesivamente hasta ordenar todo
el arreglo.
Este es el diseño del proyecto realizado.
Generar
Ordenar
Se utiliza el siguiente código:
Public Class frmSeleccion
Dim num As Integer()
Dim mayor As Integer
Private Sub
btnGenerar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnGenerar.Click
Dim NumAleatorio As New Random
Dim tamano As Integer = 0
tamano = Val(txtTamano.Text) - 1
LstNumeros.Items.Clear()
'llena la
lista (vector) con numeros aleatorios
For i As Integer = 0 To tamano
LstNumeros.Items.Add(NumAleatorio.Next(Val(txtMin.Text),
Val(txtMax.Text)))
Next
End Sub
Public Function FotoVector(ByVal
Lista As ListBox)
As String 'funcion para imprimir la lista de numeros del vector
Dim AuxListas As String = ""
For i As Integer = 0 To
Lista.Items.Count - 1
AuxListas = AuxListas & Lista.Items(i) & " "
Next
FotoVector = AuxListas
End Function
Public Function
PosMayor(ByVal Lista As
ListBox, ByVal
INICIO As Integer)
As Integer
mayor =
Lista.Items(INICIO)
Dim POS As Integer = INICIO
For i As Integer = (INICIO + 1) To
LstNumeros.Items.Count - 1
If Lista.Items(i) < mayor Then
mayor = Lista.Items(i)
POS = i
End If
Next
PosMayor
= POS
End Function
Private Sub
Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
Dim puntero As Integer = -1
Dim pos As Integer = 0
Dim aux As Integer = 0
For i As Integer = 1 To
LstNumeros.Items.Count - 1
puntero = puntero + 1
pos = PosMayor(LstNumeros, puntero)
aux = LstNumeros.Items(puntero)
LstNumeros.Items(puntero) =
LstNumeros.Items(pos)
LstNumeros.Items(pos) = aux
'MsgBox(PosMayor(LstNumeros,
0))
Next
End Sub
Private Sub
frmMetodoSeleccion_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
'LstNumeros.Enabled = False
End Sub
Private Sub
txtTamano_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles txtTamano.KeyPress
'e.KeyChar = Validacion("N",
e.KeyChar)
End Sub
Private Sub txtMin_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
Handles txtMin.KeyPress
' e.KeyChar = Validacion("N",
e.KeyChar)
End Sub
Private Sub
txtMax_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles
txtMax.KeyPress
'
e.KeyChar = Validacion("N", e.KeyChar)
End Sub
Private Sub
txtMax_TextChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
txtMax.TextChanged
End Sub
Private Sub
BtnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
BtnSalir.Click
If MsgBox("¿Desea
salir?", vbCritical + vbYesNo, "Salir")
= vbYes Then
Me.Close()
End If
frmMenu.Show()
End Sub
End Class
En este link podrá encontrar el proyecto ya funcional.
No hay comentarios:
Publicar un comentario