SlideShare una empresa de Scribd logo
Ordenamiento con arbol binario Edwin Osuna Mahecha
historia    En 1951, a David Huffman y sus compañeros de clase de la asignatura “Teoría de la Información” se les permitió optar entre la realización de un examen final o la presentación de un trabajo. El profesor Robert. M. Fano asignó las condiciones del trabajo bajo la premisa de encontrar el código binario más eficiente.  Huffman, ante la imposibilidad de demostrar qué código era más eficiente, se rindió y empezó a estudiar para el examen final. Mientras estaba en este proceso vino a su mente la idea de usar árboles binarios de frecuencia ordenada y rápidamente probó que éste era el método más eficiente.
Ordenamiento con árbol binario El ordenamiento con árbol binario es un algoritmo de ordenamiento, el cual ordena sus elementos haciendo uso de un árbol binario de búsqueda. Se basa en ir construyendo poco a poco el árbol binario introduciendo cada uno de los elementos, los cuales quedarán ya ordenados. Después, se obtiene la lista de los elementos ordenados recorriendo el árbol en inorden.
Descripción     Un árbol binario de búsqueda (ABB) es un árbol binario definido de la siguiente forma: Todo árbol vacío es un árbol binario de búsqueda. Un   árbol binario no vacío, de raíz R, es un árbol binario de búsqueda si:      En caso de tener subárbol izquierdo, la raíz R debe ser mayor que el valor máximo almacenado en el subárbol izquierdo, y que el subárbol izquierdo sea un árbol binario de búsqueda.      En caso de tener subárbol derecho, la raíz R debe ser menor que el valor mínimo almacenado en el subárbol derecho, y que el subárbol derecho sea un árbol binario de búsqueda.
Complejidad Insertar elementos en un árbol binario de búsqueda tiene una complejidad O(log n). Entonces, agregar n elementos a un árbol cualquiera da como resultado una complejidad O(n log n). Además, recorrer los elementos del árbol en inorden tiene complejidad O(n).
Características Tiene un buen rendimiento. Es estable (no cambia el orden relativo de elementos iguales). No requiere espacio de almacenamiento extra. Puede ordenar listas tal cual las recibe.
Pseudocodigo Pseudocodigo preorden preorden( nodo )     //donde nodo es un  registro de tipo puntero//valor, nIzq y nDer son campos del registro nodo.//valor = valor del nodo que se esta visitando//nIzq y nDer= valor de tipo apuntador (sirven para no perder los nodos derecho e izquierdo y poder volver cuando se necesite)     si nodo <> NULO  entonces //(si nodo no es nulo/vacío)     visitar el nodo //nodo.info (obtenemos el valor del nodo )preorden(nodo.izq) //llamamos de nuevo el método preorden mandando como parámetro el nodo izquierdo del nodo actual.preorden(nodo.der) //llamamos de nuevo el metodopreorden mandando como parámetro el nodo derecho del nodo actual fin fin
Pseudocodigo  inorden inorden( nodo )     //donde nodo es un registro de tipo puntero//valor, nIzq y nDer son campos del registro nodo.//valor = valor del nodo que se esta visitando//nIzq y nDer= valor de tipo apuntador (sirven para no perder los nodos derecho e izquierdo y poder volver cuando se necesite)     si nodo <> NULO  entonces //(si nodo no es nulo/vacío) inorden(nodo.izq) //llamamos de nuevo el método inorden mandando como parámetro el nodo izquierdo del nodo actual.visitar el nodo //nodo.info (obtenemos el valor del nodo )inorden(nodo.der) //llamamos de nuevo el método inorden mandando como parámetro el nodo derecho del nodo actual     fin    fin
Pseudocodigo Pseudocodigo postorden postorden( nodo )     //donde nodo es un registro de tipo puntero//valor, nIzq y nDer son campos del registro nodo.//valor = valor del nodo que se esta visitando//nIzq y nDer= valor de tipo apuntador (sirven para no perder los nodos derecho e izquierdo y poder volver cuando se necesite)     si nodo <> NULO  entonces //(si nodo no es nulo/vacío) postorden(nodo.izq) //llamamos de nuevo el método postorden mandando como parámetro el nodo izquierdo del nodo actual.postorden(nodo.der) //llamamos de nuevo el método postorden mandando como parámetro el nodo derecho del nodo actualvisitar el nodo //nodo.info (obtenemos el valor del nodo )      fin     fin

Más contenido relacionado

La actualidad más candente

Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
Alvaro Enrique Ruano
 
Arboles AVL
Arboles AVLArboles AVL
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
Julises Garín Catalán
 
Programación 3: árboles de búsqueda equilibrados
Programación 3: árboles de búsqueda equilibradosProgramación 3: árboles de búsqueda equilibrados
Programación 3: árboles de búsqueda equilibrados
Angel Vázquez Patiño
 
Arboles Binarios y Arboles Binarios de Busqueda
Arboles Binarios y Arboles Binarios de BusquedaArboles Binarios y Arboles Binarios de Busqueda
Arboles Binarios y Arboles Binarios de Busqueda
Kamila Nicole Molina Orellana
 
Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
José Antonio Sandoval Acosta
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
Alvaro Enrique Ruano
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de Datos
DARKGIRL93
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
NANO-06
 
Quicksort
QuicksortQuicksort
Arboles y grafos
Arboles y grafosArboles y grafos
Arboles y grafos
Alexis Chavez
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
Angel Vázquez Patiño
 
Algoritmo de quicksort
Algoritmo de quicksortAlgoritmo de quicksort
Algoritmo de quicksort
Jorge Villarreal
 
Algoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externoAlgoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externo
Universidad de Cuenca
 
Data structure using c module 2
Data structure using c module 2Data structure using c module 2
Data structure using c module 2
smruti sarangi
 

La actualidad más candente (20)

Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
 
Arboles AVL
Arboles AVLArboles AVL
Arboles AVL
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
áRbol avl
áRbol avláRbol avl
áRbol avl
 
Programación 3: árboles de búsqueda equilibrados
Programación 3: árboles de búsqueda equilibradosProgramación 3: árboles de búsqueda equilibrados
Programación 3: árboles de búsqueda equilibrados
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Arboles Binarios y Arboles Binarios de Busqueda
Arboles Binarios y Arboles Binarios de BusquedaArboles Binarios y Arboles Binarios de Busqueda
Arboles Binarios y Arboles Binarios de Busqueda
 
Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
 
ARBOLES BINARIOS
ARBOLES BINARIOSARBOLES BINARIOS
ARBOLES BINARIOS
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de Datos
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
Quicksort
QuicksortQuicksort
Quicksort
 
Arboles y grafos
Arboles y grafosArboles y grafos
Arboles y grafos
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
Lista simple
Lista simpleLista simple
Lista simple
 
Algoritmo de quicksort
Algoritmo de quicksortAlgoritmo de quicksort
Algoritmo de quicksort
 
Algoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externoAlgoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externo
 
Data structure using c module 2
Data structure using c module 2Data structure using c module 2
Data structure using c module 2
 

Destacado

Ejercicio ÁRBOL DE EXPRESIONES ARITMÉTICAS
Ejercicio ÁRBOL DE EXPRESIONES ARITMÉTICASEjercicio ÁRBOL DE EXPRESIONES ARITMÉTICAS
Ejercicio ÁRBOL DE EXPRESIONES ARITMÉTICAS
xaviercamposm
 
Ordenamiento con árbol binario
Ordenamiento con árbol binarioOrdenamiento con árbol binario
Ordenamiento con árbol binarioMauricio Solano
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
Lalo Chooper
 
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)Fuerza Auriazul
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binariosfavi_hola
 
Ordenación por insertion sort
Ordenación por insertion sortOrdenación por insertion sort
Ordenación por insertion sort
Mxrio Mxrrett
 
4.5 a 4.8 ley de biot savart
4.5 a 4.8 ley de biot savart4.5 a 4.8 ley de biot savart
4.5 a 4.8 ley de biot savart
franklivargas
 
Cuadro Comparativo Algoritmos de Ordenamiento
Cuadro Comparativo Algoritmos de OrdenamientoCuadro Comparativo Algoritmos de Ordenamiento
Cuadro Comparativo Algoritmos de OrdenamientoMario Bustamante Toledo
 
Ordenamiento por mezcla
Ordenamiento por mezclaOrdenamiento por mezcla
Ordenamiento por mezclacarmensp
 
Merge sort
Merge sortMerge sort
Merge sort
Mario Palma Avila
 
busqueda a profundidad dsf
busqueda a profundidad dsfbusqueda a profundidad dsf
busqueda a profundidad dsf
jurgenmtz
 
Ordenamiento por mezcla
Ordenamiento por mezclaOrdenamiento por mezcla
Ordenamiento por mezclapambele
 
Merge Sort
Merge SortMerge Sort
Merge Sort
humbertorayados
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortlinkinpark03
 
Mergesort
MergesortMergesort
Mergesort
julio garcia
 

Destacado (20)

Arboles de expresion
Arboles de expresionArboles de expresion
Arboles de expresion
 
Ejercicio ÁRBOL DE EXPRESIONES ARITMÉTICAS
Ejercicio ÁRBOL DE EXPRESIONES ARITMÉTICASEjercicio ÁRBOL DE EXPRESIONES ARITMÉTICAS
Ejercicio ÁRBOL DE EXPRESIONES ARITMÉTICAS
 
Ordenamiento con árbol binario
Ordenamiento con árbol binarioOrdenamiento con árbol binario
Ordenamiento con árbol binario
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Arboles con raiz
Arboles con raizArboles con raiz
Arboles con raiz
 
Ordenación por insertion sort
Ordenación por insertion sortOrdenación por insertion sort
Ordenación por insertion sort
 
4.5 a 4.8 ley de biot savart
4.5 a 4.8 ley de biot savart4.5 a 4.8 ley de biot savart
4.5 a 4.8 ley de biot savart
 
Cuadro Comparativo Algoritmos de Ordenamiento
Cuadro Comparativo Algoritmos de OrdenamientoCuadro Comparativo Algoritmos de Ordenamiento
Cuadro Comparativo Algoritmos de Ordenamiento
 
Ordenamiento por mezcla
Ordenamiento por mezclaOrdenamiento por mezcla
Ordenamiento por mezcla
 
Merge sort
Merge sortMerge sort
Merge sort
 
busqueda a profundidad dsf
busqueda a profundidad dsfbusqueda a profundidad dsf
busqueda a profundidad dsf
 
Ordenamiento por mezcla
Ordenamiento por mezclaOrdenamiento por mezcla
Ordenamiento por mezcla
 
Merge Sort
Merge SortMerge Sort
Merge Sort
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sort
 
Mergesort
MergesortMergesort
Mergesort
 
Quick Sort
Quick SortQuick Sort
Quick Sort
 
Recorrido en árboles binarios
Recorrido en árboles binariosRecorrido en árboles binarios
Recorrido en árboles binarios
 

Similar a Ordenamiento con árbol binario

arbol.pdf
arbol.pdfarbol.pdf
arbol.pdf
LuisAGuarata
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructurasVana Cigarroa
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructurasVana Cigarroa
 
Seudocodigo arbol
Seudocodigo arbolSeudocodigo arbol
Seudocodigo arbol
Carlos Raul Chazarreta
 
tema4.pdf
tema4.pdftema4.pdf
Dylan_Medina_Arbol.pdf
Dylan_Medina_Arbol.pdfDylan_Medina_Arbol.pdf
Dylan_Medina_Arbol.pdf
DylanMedina4
 
Informe de Arboles.pdf
Informe de Arboles.pdfInforme de Arboles.pdf
Informe de Arboles.pdf
dciutsucre
 
Estructura de datos unidad 4 y 5
Estructura de datos unidad 4 y 5Estructura de datos unidad 4 y 5
Estructura de datos unidad 4 y 5pootalex
 
DECLARACION DE ARBOLES.pdf
DECLARACION DE ARBOLES.pdfDECLARACION DE ARBOLES.pdf
DECLARACION DE ARBOLES.pdf
michaelsilva2k20
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
nukeeHE
 
Arboles
ArbolesArboles
Operaciones Básicas con Árboles
Operaciones Básicas con ÁrbolesOperaciones Básicas con Árboles
Operaciones Básicas con Árboles
Fernando Solis
 
Arbol en programación ALAN MENDEZ.pdf
Arbol en programación ALAN MENDEZ.pdfArbol en programación ALAN MENDEZ.pdf
Arbol en programación ALAN MENDEZ.pdf
Gabriel Mendez
 

Similar a Ordenamiento con árbol binario (20)

arbol.pdf
arbol.pdfarbol.pdf
arbol.pdf
 
Arboles
ArbolesArboles
Arboles
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructuras
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructuras
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
Seudocodigo arbol
Seudocodigo arbolSeudocodigo arbol
Seudocodigo arbol
 
tema4.pdf
tema4.pdftema4.pdf
tema4.pdf
 
Dylan_Medina_Arbol.pdf
Dylan_Medina_Arbol.pdfDylan_Medina_Arbol.pdf
Dylan_Medina_Arbol.pdf
 
Informe de Arboles.pdf
Informe de Arboles.pdfInforme de Arboles.pdf
Informe de Arboles.pdf
 
Estructura de datos unidad 4 y 5
Estructura de datos unidad 4 y 5Estructura de datos unidad 4 y 5
Estructura de datos unidad 4 y 5
 
Arboles
ArbolesArboles
Arboles
 
Arboles ej
Arboles ejArboles ej
Arboles ej
 
DECLARACION DE ARBOLES.pdf
DECLARACION DE ARBOLES.pdfDECLARACION DE ARBOLES.pdf
DECLARACION DE ARBOLES.pdf
 
ARBOLES
ARBOLESARBOLES
ARBOLES
 
Arboles TDAS
Arboles TDASArboles TDAS
Arboles TDAS
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Arboles
ArbolesArboles
Arboles
 
Operaciones Básicas con Árboles
Operaciones Básicas con ÁrbolesOperaciones Básicas con Árboles
Operaciones Básicas con Árboles
 
Arbol en programación ALAN MENDEZ.pdf
Arbol en programación ALAN MENDEZ.pdfArbol en programación ALAN MENDEZ.pdf
Arbol en programación ALAN MENDEZ.pdf
 

Ordenamiento con árbol binario

  • 1. Ordenamiento con arbol binario Edwin Osuna Mahecha
  • 2. historia En 1951, a David Huffman y sus compañeros de clase de la asignatura “Teoría de la Información” se les permitió optar entre la realización de un examen final o la presentación de un trabajo. El profesor Robert. M. Fano asignó las condiciones del trabajo bajo la premisa de encontrar el código binario más eficiente. Huffman, ante la imposibilidad de demostrar qué código era más eficiente, se rindió y empezó a estudiar para el examen final. Mientras estaba en este proceso vino a su mente la idea de usar árboles binarios de frecuencia ordenada y rápidamente probó que éste era el método más eficiente.
  • 3. Ordenamiento con árbol binario El ordenamiento con árbol binario es un algoritmo de ordenamiento, el cual ordena sus elementos haciendo uso de un árbol binario de búsqueda. Se basa en ir construyendo poco a poco el árbol binario introduciendo cada uno de los elementos, los cuales quedarán ya ordenados. Después, se obtiene la lista de los elementos ordenados recorriendo el árbol en inorden.
  • 4. Descripción Un árbol binario de búsqueda (ABB) es un árbol binario definido de la siguiente forma: Todo árbol vacío es un árbol binario de búsqueda. Un árbol binario no vacío, de raíz R, es un árbol binario de búsqueda si: En caso de tener subárbol izquierdo, la raíz R debe ser mayor que el valor máximo almacenado en el subárbol izquierdo, y que el subárbol izquierdo sea un árbol binario de búsqueda. En caso de tener subárbol derecho, la raíz R debe ser menor que el valor mínimo almacenado en el subárbol derecho, y que el subárbol derecho sea un árbol binario de búsqueda.
  • 5. Complejidad Insertar elementos en un árbol binario de búsqueda tiene una complejidad O(log n). Entonces, agregar n elementos a un árbol cualquiera da como resultado una complejidad O(n log n). Además, recorrer los elementos del árbol en inorden tiene complejidad O(n).
  • 6. Características Tiene un buen rendimiento. Es estable (no cambia el orden relativo de elementos iguales). No requiere espacio de almacenamiento extra. Puede ordenar listas tal cual las recibe.
  • 7. Pseudocodigo Pseudocodigo preorden preorden( nodo ) //donde nodo es un  registro de tipo puntero//valor, nIzq y nDer son campos del registro nodo.//valor = valor del nodo que se esta visitando//nIzq y nDer= valor de tipo apuntador (sirven para no perder los nodos derecho e izquierdo y poder volver cuando se necesite) si nodo <> NULO  entonces //(si nodo no es nulo/vacío) visitar el nodo //nodo.info (obtenemos el valor del nodo )preorden(nodo.izq) //llamamos de nuevo el método preorden mandando como parámetro el nodo izquierdo del nodo actual.preorden(nodo.der) //llamamos de nuevo el metodopreorden mandando como parámetro el nodo derecho del nodo actual fin fin
  • 8. Pseudocodigo  inorden inorden( nodo ) //donde nodo es un registro de tipo puntero//valor, nIzq y nDer son campos del registro nodo.//valor = valor del nodo que se esta visitando//nIzq y nDer= valor de tipo apuntador (sirven para no perder los nodos derecho e izquierdo y poder volver cuando se necesite) si nodo <> NULO  entonces //(si nodo no es nulo/vacío) inorden(nodo.izq) //llamamos de nuevo el método inorden mandando como parámetro el nodo izquierdo del nodo actual.visitar el nodo //nodo.info (obtenemos el valor del nodo )inorden(nodo.der) //llamamos de nuevo el método inorden mandando como parámetro el nodo derecho del nodo actual fin fin
  • 9. Pseudocodigo Pseudocodigo postorden postorden( nodo ) //donde nodo es un registro de tipo puntero//valor, nIzq y nDer son campos del registro nodo.//valor = valor del nodo que se esta visitando//nIzq y nDer= valor de tipo apuntador (sirven para no perder los nodos derecho e izquierdo y poder volver cuando se necesite) si nodo <> NULO  entonces //(si nodo no es nulo/vacío) postorden(nodo.izq) //llamamos de nuevo el método postorden mandando como parámetro el nodo izquierdo del nodo actual.postorden(nodo.der) //llamamos de nuevo el método postorden mandando como parámetro el nodo derecho del nodo actualvisitar el nodo //nodo.info (obtenemos el valor del nodo )  fin fin