Translate

martes, 3 de diciembre de 2013

Vectores:estadística(Moda) en Visual Basic 2010


La Ordenación de burbuja (Bubble Sort en inglés) es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista está ordenada. 

Este algoritmo obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeñas "burbujas". También es conocido como el método del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparación, siendo el más sencillo de implementar.

A continuación se muestra un ejemplo de la implementación del método burbuja en visual Basic 2010.net.
Para realizar la aplicación es necesario crear una interfaz como la siguiente:
















La cual consta de:
·         2 Listbox
·         1 Grupbox
·         3 Label
·         3 Textbox
·         2 Botones
Nota: Los label,textbox y botones van colocados dentro del grupbox.
El código que se emplea para el botón generar es el siguiente.
Dim numAleatorio As New Random ' se declara una variable de tipo Random
        'para genera los numeros de forma aleatoria

        Dim tamano As Integer = 0 'se declara una variable de tipo entero para indicar en tamaño
        tamano = Val(txtTamano.Text) - 1 'indica que al tamaño se le resta 1
        LstNumeros.Items.Clear() ' limpia las lista de elementos
        'llena la lista con numeros aleatorios
        For I As Integer = 0 To tamano 'emplea un un ciclo para generar los numeros de manera automatica
            LstNumeros.Items.Add(numAleatorio.Next(Val(txtmin.Text), Val(txtmax.Text)))
            'genera la lista en un listBox















El código que se emplea para el botón ordenar  es el siguiente.
Dim vueltas As Integer = 0 ' se declara una variable para contar las vueltas
        Dim comparaciones As Integer = 0 ' se declara una variable para contar las comparaciones
        Dim puntero As Integer = 0 'indica en que posiciòn se encuentra el puntero
        Dim Auxiliar As Integer = 0 ' sedeclara una variable que se utilizara para el almacenamiento temporal
        vueltas = LstNumeros.Items.Count - 1 'indica las vueltas
        LstExplicacion.Items.Clear() 'limpia la lista de numeros

        'controla el numero de vueltas que dara el metodo burbuja
        For I As Integer = 1 To vueltas
            'determina el numero de comparaciones por cada vuelta
            comparaciones = LstNumeros.Items.Count - I

            puntero = 0

            LstExplicacion.Items.Add(" VUELTA  :" & I)

            For j As Integer = 1 To comparaciones
                'se declara un ciclo para contar el numero de comparaciones
                LstExplicacion.Items.Add("   COMPARACION  :" & j & " SI " & LstNumeros.Items(puntero) & " > " & LstNumeros.Items(puntero + 1))

                If LstNumeros.Items(puntero) > LstNumeros.Items(puntero + 1) Then
                    LstExplicacion.Items.Add("     SE INTERCAMBIA EL  " & LstNumeros.Items(puntero) & " CON EL " & LstNumeros.Items(puntero + 1))

                    'para realizar el intercambio
                    Auxiliar = LstNumeros.Items(puntero + 1)
                    LstNumeros.Items(puntero + 1) = LstNumeros.Items(puntero)
                    LstNumeros.Items(puntero) = Auxiliar
                End If
                puntero = puntero + 1

                LstExplicacion.Items.Add(fotoVaector(LstNumeros))
            Next

        Next

















Una  forma de entender mejor este método es mediante  una explicación para ello se emplea una función que permitirá realizar esto.
Dim auxListas As String
        For i As Integer = 0 To lista.Items.Count - 1
            auxListas = auxListas & lista.Items(i) & " "
        Next
        fotoVector = auxListas

Nota: La función ya ha sido implementada en el código presentado anteriormente. (Botón ordenar).


















No hay comentarios:

Publicar un comentario