martes, 3 de diciembre de 2013

MÉTODO DE SELECCIÓN


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