Fundamental#3 Ensayo

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 11

Nombre Matricula Carrera

Evelyn Arely Peña Martínez 1954432 IAS


Emilio Fabián González Moncada 1999381 ITS
Diego Antonio Rodríguez Castañeda 1898260 ITS
Angel Manuel Cruz Tamez 1853006 IAS
Patricio Loredo navarro 2000192 ITS
Joan Raymundo Hernández Antonio 1906816 IAS
Francisco Alan Sarmientos Méndez 1946128 ITS 
Rodolfo Alejandro Cisneros Cerros 1994150 IAS

Fundamental #3

Algoritmos Computacionales

Dra. Norma Edith Marin


Martinez

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

Tanto los algoritmos de ordenamiento y búsqueda se encuentran en nuestra


vida cotidiana día con día, los podemos encontrar en muchas partes, un ejemplo de
esto sería en algunas aplicaciones como podría ser Amazon, Google, entre otras,
las cuales usamos tanto en nuestros dispositivos móviles como en nuestras
computadoras cabe aclarar que ambos son diferentes por lo que después investigar
e informarnos sobre ellos podemos hablar sobre cómo funciona cada uno de estos,
así como sus características y los diferentes tipos que podemos encontrar de cada
uno de ellos así como los grupos en los que podemos agruparlos también
hablaremos sobre a que nos referimos con “arboles” cuando lo mencionan en los
algoritmos y también mencionaremos sus principales características.

3
Algoritmos de Ordenamiento

En computación y matemáticas un algoritmo de ordenamiento es un algoritmo


que pone elementos de una lista o un vector en una secuencia dada por una
relación de orden, es decir, el resultado de salida ha de ser un reordenamiento de la
entrada que satisfaga la relación de orden dada.
Los algoritmos de ordenamiento son un conjunto de instrucciones diseñadas
para ordenar un conjunto de datos en un orden específico. Estos algoritmos son
ampliamente utilizados para ordenar grandes cantidades de datos, como listas de
nombres, números o archivos.
Existen muchos tipos diferentes de algoritmos de ordenamiento, pero todos
ellos funcionan de manera similar. En esencia, un algoritmo de ordenamiento toma
una lista de elementos desordenados y los reorganiza en un orden específico.

ORDENAMIENTO POR BURBUJA


El ordenamiento burbuja es uno de los algoritmos de ordenamiento más
sencillos e intuitivos. Este algoritmo toma una lista de elementos desordenados y los
compara par a par, intercambiándolos si están en el orden incorrecto. Este proceso
se repite varias veces hasta que la lista completa esté ordenada.
Revisa 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. Este algoritmo obtiene su nombre de la forma con la que suben por la
lista los elementos durante los intercambios, como si fueran "burbujas"
Ejemplo:

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.

ORDENAMIENTO POR SELECCIÓN


Los algoritmos de selección son algoritmos de ordenamiento que funcionan
seleccionando el valor más pequeño o grande de la lista y colocándolo en la
posición adecuada en la lista ordenada. Algoritmo que ubica elementos de una lista
o vector, en una secuencia, dada por una relación de orden, tomando como punto
de partida el menor elemento.
Ejemplo:

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

Un árbol es una estructura de datos que se utiliza en programación y ciencias


de la computación para almacenar y organizar datos de forma jerárquica. Está
compuesto por un conjunto de nodos conectados por aristas, donde un nodo es la
raíz del árbol y los demás nodos pueden ser clasificados como nodos internos o
nodos hoja.
La función principal de un árbol es almacenar y organizar datos de manera
eficiente. Los datos se organizan de tal manera que cada nodo tiene un número
finito de hijos, y los hijos se ramifican a partir de cada nodo para crear subárboles.
Los subárboles son estructuras similares a árboles que también tienen una raíz y
nodos intermedios y hojas.
Las principales características de un árbol son:
1. Raíz: es el nodo superior del árbol, que no tiene padre y es el punto de
partida de la estructura.
2. Nodo interno: es un nodo que tiene uno o más hijos.

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.

El recorrido de un árbol binario se refiere al proceso de visitar cada uno de


sus nodos en un orden determinado. Hay tres formas comunes de recorrer un árbol
binario:
1. Recorrido en orden (in-order traversal): En este recorrido, primero se visita el
subárbol izquierdo, luego se visita el nodo raíz y finalmente se visita el subárbol
derecho. Este recorrido es útil para imprimir los elementos del árbol en orden
ascendente.
2. Recorrido preorden (pre-order traversal): En este recorrido, primero se visita el
nodo raíz, luego se visita el subárbol izquierdo y finalmente se visita el subárbol
derecho.
3. Recorrido postorden (post-order traversal): En este recorrido, primero se visita el
subárbol izquierdo, luego se visita el subárbol derecho y finalmente se visita el nodo
raíz.
Además de estas tres formas básicas de recorrido, hay otras variantes que se
utilizan según las necesidades específicas de cada aplicación. El recorrido de un
árbol binario es una operación fundamental en la manipulación de esta estructura de

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

 EcuRed. (s. f.). Algoritmo de búsqueda - EcuRed.

 EcuRed. (Dakota del Norte). Algoritmo de búsqueda – EcuRed .

https://www.ecured.cu/Algoritmo_de_b%C3%BAsqueda

 Microsoft PowerPoint - Tema9.ppt (utfsm.cl)

 ALGORITMOS DE BUSQUEDA Y ORDENAMIENTO. (2013, 9 diciembre).

Diseño y análisis de algoritmos. ALGORITMOS DE BUSQUEDA Y

ORDENAMIENTO | Diseño y análisis de algoritmos (wordpress.com)

 Oblancarte. (2020, August 27). Estructura de datos - Árboles - Oscar Blancarte -

Software Architecture. Oscar Blancarte - Software Architecture.

https://www.oscarblancarteblog.com/2014/08/22/estructura-de-datos-arboles/

11

También podría gustarte