Fundamental#3 Ensayo
Fundamental#3 Ensayo
Fundamental#3 Ensayo
Fundamental #3
Algoritmos Computacionales
1
INDICE
Introducción..............................................................................3
Algoritmos de Ordenamiento..................................................4
ORDENAMIENTO POR BURBUJA.............................................................................................4
ORDENAMIENTO POR INSERCIÓN..........................................................................................5
ORDENAMIENTO POR SELECCIÓN.........................................................................................5
ORDENAMIENTO POR SHELL...................................................................................................6
Algoritmos de búsqueda.........................................................6
BÚSQUEDA SECUENCIAL..........................................................................................................6
BÚSQUEDA BINARIA....................................................................................................................7
Arboles......................................................................................7
ÁRBOL BINARIO............................................................................................................................8
ÁRBOL BINARIO DE BÚSQUEDA............................................................................................10
Conclusión..............................................................................11
Bibliografía..............................................................................11
2
Introducción
3
Algoritmos de Ordenamiento
4
ORDENAMIENTO POR INSERCIÓN Ejemplo:
El ordenamiento por inserción es un
algoritmo de ordenamiento que recorre una
lista de elementos y, en cada paso, inserta
el elemento actual en su posición correcta
en la lista ordenada.
Siempre conserva una sublista
ordenada en las posiciones inferiores de la
lista. Cada elemento nuevo se inserta de
regreso en la sablista previa de manera
que la sablista ordenada A sea un
elemento más largo.
5
ORDENAMIENTO POR SHELL
El método se denomina así en honor de su inventor Donald Shell.
Algoritmo que pone elementos de una lista o un vector, en una secuencia
dada por una relación de orden, siendo una generalización del ordenamiento por
inserción.
Algoritmos de búsqueda
Así como su nombre lo nombre los algoritmos de búsqueda nos sirven para
buscar algún elemento en específico en los arreglos, lo más común es buscar el
mayor o menor elemento. Existen una diversa variedad de algoritmos de búsqueda
los cuales pueden variar en cuanto a su complejidad, su eficiencia y su tamaño de
búsqueda.
En cuanto a este tipo de algoritmos contamos con dos tipos, el de búsqueda
secuencial y el de búsqueda binaria ambos como ya se mencionó anteriormente
cuentan con características diferentes a continuación hablaremos más sobre ellos:
BÚSQUEDA SECUENCIAL
Este tipo de algoritmo busca un elemento dentro de una lista utilizando un
valor destino que llamamos clave, dentro de este tipo de algoritmo los elementos de
nuestra lista o vector se exploraran en secuencia, o sea uno detrás del otro. Dado
que el arreglo no se encuentra en un orden prefijo, puede darse el caso de que
nuestro elemento a buscar se encuentre tanto en la primera posición como en la
ultima o en cualquier otro, dicho esto el programa de promedio tendrá que comparar
la clave de búsqueda con la mitad de los elementos que tengamos en el arreglo.
Dicho esto, podemos decir que la eficiencia de este tipo de arreglo es pobre y de
complejidad lineal.
Ejemplos:
6
BÚSQUEDA BINARIA
Este tipo de arreglo se puede aplicar a cualquier lista, en el caso de que
nuestra lista se encuentre ordenada la búsqueda realizada proporcionara una
técnica de búsqueda mejorada. Un claro ejemplo de una búsqueda binaria típica
sería el buscar una palabra en un diccionario. Seleccionada la palabra se abre el
libro ya sea cerca del principio, del final o del centro dependiendo de la palabra
seleccionada, por ejemplo, si la palabra comienza con la letra “M” y de momento te
encuentras en la letra “O” seria necesario moverse hacia atrás y el proceso
continuaría hasta encontrar la palabra seleccionada o en otro caso hasta comprobar
que la palabra no se encuentra en las listas.
Ejemplo:
Arboles
7
3. Nodo hoja: es un nodo que no tiene hijos y se encuentra en el extremo de
una rama.
4. Subárbol: es una estructura similar a un árbol que se encuentra dentro de
otro árbol y comparte una raíz común.
5. Camino: es una secuencia de nodos conectados por aristas que va desde un
nodo hasta otro.
6. Altura: es la longitud del camino más largo desde la raíz hasta un nodo hoja.
7. Profundidad: es la longitud del camino desde la raíz hasta un nodo en
particular.
8. Grado: es el número de hijos que tiene un nodo.
9. Orden: es el número total de nodos en el árbol.
10. Equilibrio: se refiere a la distribución de los nodos en los subárboles del árbol.
Un árbol es una estructura de datos que se utiliza para organizar y almacenar
datos de forma jerárquica, con una raíz, nodos internos y hojas, y subárboles que se
ramifican desde cada nodo.
Nivel: Nos referimos como nivel a cada generación dentro del árbol. Por ejemplo,
cuando a un nodo hoja le agregamos un hijo, el nodo hoja pasa a ser un nodo rama,
pero además el árbol crece una generación por lo que el Árbol tiene un nivel más.
Cada generación tiene un número de Nivel distinto que las demás generaciones.
Un árbol vacío tiene 0 niveles
El nivel de la Raíz es 1
El nivel de cada nodo se calculado contando cuantos nodos existen sobre él,
hasta llegar a la raíz + 1, y de forma inversa también se podría, contar
cuantos nodos existes desde la raíz hasta el nodo buscado + 1
ÁRBOL BINARIO
Un árbol binario es una estructura de datos en la que cada nodo tiene a lo
sumo dos hijos: un hijo izquierdo y un hijo derecho. Cada nodo en un árbol binario
8
puede tener cero, uno o dos hijos. El nodo superior del árbol se llama raíz, el nodo
sin hijos se llama hoja, y los nodos que tienen hijos se llaman nodos internos.
Existen diferentes formas de comparar árboles binarios y categorizarlos
según sus propiedades. A continuación, se describen algunas de estas formas:
Árboles binarios distintos: dos árboles binarios se consideran distintos si
tienen estructuras diferentes, aunque puedan contener los mismos valores en
sus nodos. Es decir, la forma en que se conectan los nodos es diferente.
Árboles binarios similares: dos árboles binarios se consideran similares si
tienen la misma estructura, es decir, si los nodos están conectados de la
misma manera, aunque los valores almacenados en los nodos puedan ser
diferentes.
Árboles binarios equivalentes: dos árboles binarios se consideran
equivalentes si tienen la misma estructura y los mismos valores en sus
nodos. Es decir, son idénticos en su forma y contenido.
Árboles binarios completos: un árbol binario completo es aquel en el que
todos los niveles, excepto posiblemente el último, están completamente
llenos, y los nodos del último nivel están lo más a la izquierda posible. En
otras palabras, un árbol binario completo tiene el mayor número posible de
nodos para su altura.
Los árboles binarios completos son útiles porque permiten una búsqueda,
inserción y eliminación de datos más eficiente que otros árboles binarios que no son
completos. Los árboles binarios se pueden comparar y categorizar según su
estructura, contenido y propiedades como su grado de completitud, entre otras
características.
9
datos. Al recorrer el árbol, se pueden realizar diferentes operaciones en cada uno de
sus nodos, como imprimir el valor del nodo, calcular su profundidad, encontrar el
valor mínimo o máximo, entre otras.
ÁRBOL BINARIO DE BÚSQUEDA
Un árbol de búsqueda binaria es una estructura de datos en la que cada nodo
tiene a lo sumo dos hijos (subárbol izquierdo y subárbol derecho). Además, se
cumple que el valor de cada nodo del subárbol izquierdo es menor o igual que el
valor del nodo padre, y el valor de cada nodo del subárbol derecho es mayor o igual
que el valor del nodo padre.
Esta estructura se utiliza comúnmente en la implementación de algoritmos de
búsqueda, ya que permite una búsqueda muy eficiente en términos de tiempo. Para
buscar un valor específico en un árbol de búsqueda binaria, se comienza en la raíz y
se compara el valor buscado con el valor del nodo actual. Si el valor buscado es
menor, se busca en el subárbol izquierdo, y si es mayor, se busca en el subárbol
derecho. El proceso continúa recursivamente hasta que se encuentra el valor
buscado o se llega a un nodo que no tiene
hijos.
Además de la búsqueda, un árbol
de búsqueda binaria también permite la
inserción y eliminación de nodos de
manera eficiente, manteniendo la
propiedad de que los nodos del subárbol
izquierdo son menores o iguales que el
nodo padre, y los nodos del subárbol
derecho son mayores o iguales que el
nodo padre.
Ejemplo de un árbol:
10
Conclusión
Los algoritmos de búsqueda, ordenamiento y árboles son elementos clave en
la programación y la informática en general. Cada uno de ellos tiene una función
específica y es fundamental para el procesamiento y análisis de datos.
Los algoritmos de búsqueda se utilizan para encontrar elementos en una
colección de datos y pueden ser muy eficientes si se implementan adecuadamente.
Los algoritmos de ordenamiento, por su parte, permiten ordenar los datos de una
colección en un orden específico, lo que facilita su procesamiento y análisis.
Finalmente, los árboles se utilizan para almacenar y organizar información
jerárquicamente, lo que resulta muy útil para búsquedas y análisis de grandes
conjuntos de datos.
La elección del algoritmo adecuado dependerá de la naturaleza y tamaño de
los datos que se estén procesando, así como de los requisitos específicos de la
aplicación en cuestión. Sin embargo, es importante tener en cuenta que la eficiencia
y eficacia de estos algoritmos son cruciales para el éxito de cualquier proyecto que
involucre procesamiento de datos.
En conclusión, los algoritmos de búsqueda, ordenamiento y árboles son
herramientas indispensables para cualquier programador o analista de datos, y su
conocimiento y uso adecuado son fundamentales para el éxito en cualquier proyecto
de informática.
Bibliografía
https://www.ecured.cu/Algoritmo_de_b%C3%BAsqueda
https://www.oscarblancarteblog.com/2014/08/22/estructura-de-datos-arboles/
11