Ángel Guerrero Blog
Métodos de ordenación y búsqueda
Sun, Feb 18, 18Como parte de un ejercicio escolar, me han pedido realice un programa para aprender los métodos de ordenación y búsqueda.
Me pidieron que realizara un programa de cualquier tipo con la condición de que debía tener arreglos unidimensionales y bidimensionales, con ordenamiento y búsqueda en una clase.
Agenda de contactos
Finalmente me decidí a realizar una agenda de contactos, primero realicé la estructura de una clase Contacto
, y otra estructura Libro (Book)
, la cual es la agenda principal que ordenará y buscará a los contactos solicitados o creará nuevos grupos para categorizar a los contactos.
Para crear la estructura completa, traté de pensar en una agenda de la siguiente manera:
Una agenda la cual contiene grupos ya sea de colegas, amigos o familiares y que a su vez tienen contactos en sus grupos respectivamente.
En la siguiente imagen se muestra que primero creo un grupo llamado Amigos
, y se agregan contactos a este grupo, cuando se intenta agregar un contacto a un grupo inexistente, este contacto no se agregará ni se creará un nuevo grupo, se tiene que especificar la creación de un grupo.
Y al último se muestran los contactos que he agregado.
Búsqueda
Para la búsqueda de un contacto se puede utilizar un método para buscarlo por medio de su nombre, de la siguiente manera:
Y muestra la siguiente salida:
Si se trata de buscar un contacto que no exista, mostrará el siguiente mensaje:
Ordenación
Para ordenar los contactos se me ocurrió crear una tabla, un arreglo bidimensional para almacenar el índice de la categoría y el segundo índice contiene únicamente el nombre del contacto.
De esta manera cuando se necesite un contacto, busca el nombre en la variable table
, también como buscar todos los contactos que sean de un grupo en específico.
Para ordenar los contactos se tiene qué indicar qué grupo de contactos se pretende ordenar, no ordena a todos los contactos por defecto, por ejemplo, se tiene la lista de contactos del grupo de amigos actualmente desordenados, llamando al método book.showTable()
.
Cuando se pide que se ordenen los contactos de este grupo:
Entonces muestra el siguiente resultado:
Al igual para otro grupo, por ejemplo el grupo familia:
Ventajas y desventajas
En la implementación de este programa realicé algoritmos muy rudimentarios, es decir con poca eficiencia, me parece que realicé demasiados bucles y algunos quizás innecesarios, con un gran volumen de datos definitivamente éste no es el enfoque, pero para ejercicio escolar creo que sirve como un inicio.