Visual Basic

Ordenamiento QuickSort (ordenamiento rápido) en Visual Basic .Net (vb.net)

Este día solo vengo de rapido para postear algunos programas que he estado haciendo de tareas en la escuela. Y pues lo hago de rápido ya que mañana tengo examen de desarrollo de proyectos y sinceramente no he estudiado nada :S jeje así que pues aquí esta algo rápido.

Este es el ordenamiento Quick Sort (en español ordenamiento rápido) y como su nombre lo indica, es el ordenamiento más eficiente y eficaz de todos, y por obviedad el más rápido. Este es un algoritmo algo sencillo, una vez que entiendes el tema de recursividad, se te hará fácil entender su funcionamiento.

Vamos con la explicación rápida:

  1. El vector desordenado es enviado a la función “quicksort()”
  2. Al llegarle el vector a la función, se toma el primer elemento del vector (o cualquiera; Nota: en nuestro caso tomamos el primero) y se considera ese elemento como “pivote” o “comodín”.
  3. Después se recorre todo el vector; durante el recorrido, se va buscando los numeros menores que el pivote, sí el elemento del vector en una vuelta es menor que el pivote, entonces se manda a la izquierda del pivote, de lo contrario no se hace nada. Esto provocará que después de recorrer todo el vector, todos los elementos menores que el pivote quedarán a la izquierda de este y los mayores al pivote a la derecha.
  4. Se envía recursivamente la mitad izquierda del vector (números menores que el pivote sin tomar en cuenta el mismo pivote) a la función quicksort
  5. Se envía recursivamente la mitad derecha del vector (números mayores que el pivote sin tomar en cuenta el mismo pivote) a la función quicksort

Pero una imagen dice más que mil palabras:

Y este es el código:
(continue reading…)

147577693785ca3ea229202308f9eaa9
Share via email

Ordenamiento Shell (Shell Sort) en Visual Basic .Net (vb)

Que onda.

Continuando con los métodos de ordenamiento (y aprovechando que me los están dejando de tarea jaja) aquí les traigo el Ordenamiento Shell.

Este es una “version mejorada” del ordenamiento por burbuja, ya que también compara dos valores del vector y dependiendo de si uno es mayor que el otro, se intercambian. En si lo que hace el método Shell es, primeramente semiordenar el vector, para despues ordenarlo de bien a bien.

Veamos su funcionamiento:

  1. Únicamente al inicio se obtiene el numero de salto (largo del vector/2). Nota: la división es redondeada al entero próximo inferior.
  2. Un ciclo externo girará mientras el Salto sea diferente de 0
  3. Un ciclo interno irá pasando por cada posición del vector iniciando en 0 hasta que el contador del ciclo interno + el Salto sea igual al tamaño del vector.
  4. Dentro del ciclo interno se irán comparando la posición del vector actual con la posición del vector actual + Salto. Si vec[contador] > vec[contador + salto] entonces se intercambian los números, y de esta manera van quedando los numero de menor valor a la izquierda y los de mayor valor a la derecha del vector.
  5. Al final se checa si hubo algún intercambio, si sí entonces se vuelve a repetir el proceso con el mismo salto, de lo contrario el salto se decrementa y se repite el proceso nuevamente.

Gráficamente sería algo como esto:
Ordenamiento Shell

y el codigo es el siguiente:
(continue reading…)

199c93afd84b8005709a89d18b183627
Share via email

Ordenamiento por Selección (Selection Sort) en Visual Basic .Net (vb)

Que onda a todos.

De nuevo he estado con muchos trabajos, tareas, y demás cosas y por lo mismo no he podido publicar muchas cosas… espero y ya lleguen las vacaciones para poder mejorar el servicio del blog :P

Bueno pues hoy publico esta tarea que me acaban de dejar y que ya había visto antes en Pascal jaja pero me da flojera publicar el código en pascal, y pues mejor lo publico en Visual Basic .net pero pues si alguien desea el código en Pascal, solo pídanlo y lo pongo :p

Bueno este es otro método de selección también de los mas utilizados para enseñar métodos de ordenamiento, pero por lo mismo que es muy fácil, no es muy práctico usarlo cuando uno desea ordenar datos a gran escala. Para eso mejor utiliza el Quick Sort, pero ese lo publicaré a ver si el martes ya que me dejen la tarea jaja ya que por ahorita tengo otras cosas que hacer ;)

Bueno veamos como funciona el algoritmo de Selección:

  1. Necesitamos recorrer cada uno de los elementos del vector (si tenemos 10 elementos, nuestro ciclo girará 10 veces) y por cada vuelta necesitamos hacer lo siguiente:
    • Buscamos el menor numero, comenzando en la posición actual del ciclo exterior + 1 hasta terminar el vector.
    • Una vez que encontramos el numero menor, lo intercambiamos con el numero que este dentro del vector en la posición de la vuelta externa (es decir, que si por ejemplo es la vuelta #3, entonces intercambiaremos vector[3] por la variable “minimo” )
    • Si no se encontró un numero menor, entonces no sucede nada
  2. Hacemos esto hasta que el ciclo externo recorra todas las posiciones del vector

Y bueno aquí esta una imagen para que te des idea visual de como funciona:

Y también te dejo el algoritmo “codificado” para que veas más o menos lo que necesitas hacer:

<strong>para</strong> i=1 <strong>hasta</strong> n-1
    minimo = i;
    <strong>para</strong> j=i+1 <strong>hasta</strong> n
        <strong>si</strong> lista[j] &lt; lista[minimo] <strong>entonces</strong>
            minimo = j <strong>/* (!) */</strong>
        <strong>fin si</strong>
    <strong>fin para</strong>
    intercambiar(lista[i], lista[minimo])
<strong>fin para</strong>

(continue reading…)

606c02cf8288fce19f213d23b70aff3e
Share via email

Ordenamiento Burbuja, Burbuja Mejorada y Burbuja con Bandera (flag) [Comparativa] en Visual Basic .NET (vb)

Hola amigos.

Ya tengo tiempo sin publicar post, :S lo que sucede es que ya entré a clases y pues siempre las primeras semanas son donde tienes un poco mas de labores que hacer jeje… Además estoy terminando de programar una nueva red social que espero y les guste.. pronto revelaré su identidad :P

Bueno pues este programa me lo acaban de dejar de tarea y pues en si ya lo había visto en el bachillerato pero lo tenía en Pascal y me daba flojera pasarlo a un lenguaje mas nuevo… Y pues aprovechando que lo tuve que hacer de tarea pues aquí les dejo una comparativa de funcionalidad de los métodos de ordenamiento mas fácil para iniciarse en esto de la programación: el ordenamiento burbuja, burbuja mejorada y burbuja con bandera (flag) y pues está escrito en Visual Basic .NET espero y les agrade…

En lo personal siento que este es el método de ordenamiento ideal para aprender y entender como funcionan los algoritmos de ordenamiento…
Al correr el programa luce así:
Ordenamiento burbuja

Aquí les dejo el algoritmo y más abajo el código fuente:
Algoritmo ordenamiento burbuja

y este es el código fuente:
(continue reading…)

c608e7d7241de08abda2e6c0a5c2c796
Share via email

Como Leer y Escribir Archivos de Acceso Secuencial (Agenda) en Visual Basic .Net (vb)

Hola a todos.

Hoy les traigo un programa hecho en Visual Basic .Net el cual es un tipo “agenda” que más bien es un control detrabajadores con su respectivos salarios y departamentos. Lo mejor aquí es que aprendes como se manejan los archivos de accesso secuencial en VB.Net

El programa se ve así:

y la manera de usarse es esta:

  • Primero tienes que crear un nuevo archivo, para esto ve a “Archivo” y presiona “Abrir”; entonces en vez de seleccionar un archivo ya existente, lo que haces es que escribes en el cuadro de texto del OpenFileDialog el nombre de tu nuevo archivo (por ejemplo file.txt) y presionas aceptar, esto lo que hará es crear un nuevo archivo llamado file.txt y abrirlo al mismo tiempo.
  • Después de crearlo y abrirlo, entonces ve al menú “Registros” y presiona “Nuevo”, entonces los cuadros de texto se limpiaran y le dará el foco al campo “# de trabajador”, entonces llenas los campos y presionas el botón “Guardar” que aparecerá ahí. Sino pues presionas “Cancelar”. Esto lo que hará será crearte un nuevo registro y guardarlo en un structure. Ojo aquí: durante el tiempo de ejecución del programa, para agregar, modificar y eliminar registros, NO se trabaja con el archivo secuencial; lo que se hace es estar trabajando con un Structure llamado “datos”, de esta manera te facilitas muchísimo las cosas. Solo trabajas con el archivo secuencial al abrir un archivo con contenido, o al presionar “Guardar”.

El código está debidamente comentado:
(continue reading…)

9fc7998292bb6eee6ad6aa0ccd271d84
Share via email

Copyright © 1996-2010 Recursos Del Web. All rights reserved.
iDream theme by Templates Next | Powered by WordPress