SlideShare una empresa de Scribd logo
Ordenamientos
Unidad 3
ING. ALVARO ENRIQUE RUANO
Contenido
● Ordenamiento
● Métodos de Ordenamiento
o Intercambio o Burbuja
o Por Inserción
o Por Selección
o Shell
o Rápido (Quick)
o Por Mezcla (Merge)
Ordenamiento Rápido
● Más conocido como “Quicksort”.
● Se basa en el hecho de que es más fácil y rápido ordenar dos listas
pequeñas que una lista grande.
● Se llama método de ordenación rápida porque, en general, puede ordenar
una lista de datos mucho más rápidamente que cualquiera de los otros
métodos vistos.
● Se basa en la estrategia típica de “Divide y vencerás”.
Ordenamiento Rápido
● La lista a ordenar debe dividirse en dos sublistas.
● La primera sublista deberá contener todos los valores menores a un cierto
valor, mientras que la otra deberá contener los mayores.
● El valor que divide las dos sublistas es llamado “Pivote”.
● El Pivote puede ser cualquier valor arbitrario del vector.
Ordenamiento Rápido
● Se toma como pivote el primer elemento de la lista.
● Se recorre el arreglo de izquierda a derecha buscando elementos mayores
que el pivote.
● Se recorre el arreglo de derecha a izquierda buscando elementos
menores que el pivote.
● Al encontrar los valores mencionados anteriormente, se realiza un
intercambio.
Ordenamiento Rápido
● El objetivo es que la lista se vea de la siguiente forma:
● Luego que se tiene el arreglo de esta form,a VI y VD se deben ordenar de
forma recursiva teniendo como caso base cuando los subarreglos tienen
una longitud de 1.
VI Pivote VD
Subvector que contiene los
valores inferiores o iguales
desordenados.
Valor de separación. Subvector que contiene los
valores superiores o iguales
desordenados.
Ordenamiento Rápido
Ordenamiento Rápido - Algoritmo
Ordenamiento Rápido
Ordenamiento Por Mezcla
● Ordenamiento por mezcla o “Merge”
● Se basa en la estrategia de “Divide y Vencerás”.
● Consiste en tomar 2 arreglos ordenados y mezclarlos para formar un
nuevo arreglo ordenado.
Ordenamiento Por Mezcla
● Pasos
1. Dividir por la mitad el arreglo desordenado en 2 arreglos y se continúa de
esa manera hasta llegar a arreglos de 1 elemento.
2. Se inicia el proceso de mezcla entre arreglos ordenando cada nivel hasta
llegar al arreglo original ordenado.
3. Seleccionar el elemento menor de los 2 arreglos y situarlo en la posición
1 de un nuevo arreglo.
4. Comparar los subsiguientes elementos de los 2 arreglos existentes y
colocar primero el elemento más pequeño.
5. Realizar esta operación hasta que se obtenga un único arreglo ordenado.
Ordenamiento Por Mezcla
Ordenamiento Por Mezcla
Asistencia
● Toma de asistencia.
Gracias por su atención

Más contenido relacionado

La actualidad más candente

Búsqueda Primero el Mejor
Búsqueda Primero el MejorBúsqueda Primero el Mejor
Búsqueda Primero el MejorTutor4uDev
 
Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++EdsonRc
 
Modelo de datos semantico
Modelo de datos semanticoModelo de datos semantico
Modelo de datos semanticoclasetic2011
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamientomemorales_IUE
 
Hashing In Data Structure
Hashing In Data Structure Hashing In Data Structure
Hashing In Data Structure Meghaj Mallick
 
04 brute force
04 brute force04 brute force
04 brute forceHira Gul
 
23 prolog con base de datos mysql paso a paso
23 prolog con  base de datos mysql   paso a paso23 prolog con  base de datos mysql   paso a paso
23 prolog con base de datos mysql paso a paso.. ..
 
Listas en C#
Listas en C#Listas en C#
Listas en C#rezzaca
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y NodosBoris Salleg
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++compumet sac
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfijaOmarzingm
 
Exposicion Busqueda
Exposicion BusquedaExposicion Busqueda
Exposicion BusquedaAngie Suarez
 
Algoritmos Voraces (Greedy)
Algoritmos Voraces (Greedy)Algoritmos Voraces (Greedy)
Algoritmos Voraces (Greedy)luzenith_g
 

La actualidad más candente (20)

Aritmetica Modular
Aritmetica ModularAritmetica Modular
Aritmetica Modular
 
Búsqueda Primero el Mejor
Búsqueda Primero el MejorBúsqueda Primero el Mejor
Búsqueda Primero el Mejor
 
Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++
 
Modelo de datos semantico
Modelo de datos semanticoModelo de datos semantico
Modelo de datos semantico
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Hashing In Data Structure
Hashing In Data Structure Hashing In Data Structure
Hashing In Data Structure
 
04 brute force
04 brute force04 brute force
04 brute force
 
IA CAPITULO 4
IA  CAPITULO 4IA  CAPITULO 4
IA CAPITULO 4
 
23 prolog con base de datos mysql paso a paso
23 prolog con  base de datos mysql   paso a paso23 prolog con  base de datos mysql   paso a paso
23 prolog con base de datos mysql paso a paso
 
Mergesort
MergesortMergesort
Mergesort
 
Metodo de busqueda
Metodo de busquedaMetodo de busqueda
Metodo de busqueda
 
Listas en C#
Listas en C#Listas en C#
Listas en C#
 
Algebra Relacional
Algebra RelacionalAlgebra Relacional
Algebra Relacional
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y Nodos
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Grafo bipartito
Grafo bipartitoGrafo bipartito
Grafo bipartito
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 
Exposicion Busqueda
Exposicion BusquedaExposicion Busqueda
Exposicion Busqueda
 
14 Skip Lists
14 Skip Lists14 Skip Lists
14 Skip Lists
 
Algoritmos Voraces (Greedy)
Algoritmos Voraces (Greedy)Algoritmos Voraces (Greedy)
Algoritmos Voraces (Greedy)
 

Similar a Ordenamientos rápido y mezcla (13)

Algoritmos de Ordenación
Algoritmos de OrdenaciónAlgoritmos de Ordenación
Algoritmos de Ordenación
 
Comparativa entre Algoritmos de Ordenamiento
Comparativa entre Algoritmos de OrdenamientoComparativa entre Algoritmos de Ordenamiento
Comparativa entre Algoritmos de Ordenamiento
 
1_Metodos.doc
1_Metodos.doc1_Metodos.doc
1_Metodos.doc
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Unidad cinco estructura de datos
Unidad cinco estructura de datosUnidad cinco estructura de datos
Unidad cinco estructura de datos
 
Ordenamiento QuickSort
Ordenamiento QuickSortOrdenamiento QuickSort
Ordenamiento QuickSort
 
Quick Sort
Quick SortQuick Sort
Quick Sort
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserción
 
Quick Sort
Quick SortQuick Sort
Quick Sort
 
Ordenamiento c++
Ordenamiento c++Ordenamiento c++
Ordenamiento c++
 
Ordenacion
OrdenacionOrdenacion
Ordenacion
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 

Más de Alvaro Enrique Ruano

Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)Alvaro Enrique Ruano
 
Introducción al análisis de algoritmos
Introducción al  análisis de algoritmosIntroducción al  análisis de algoritmos
Introducción al análisis de algoritmosAlvaro Enrique Ruano
 
Ordenamientos por selección y Shell
Ordenamientos por selección y ShellOrdenamientos por selección y Shell
Ordenamientos por selección y ShellAlvaro Enrique Ruano
 
Programación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresProgramación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresAlvaro Enrique Ruano
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesAlvaro Enrique Ruano
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoAlvaro Enrique Ruano
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosAlvaro Enrique Ruano
 
Análisis de una inversión en activos financieros negociados por medio de la B...
Análisis de una inversión en activos financieros negociados por medio de la B...Análisis de una inversión en activos financieros negociados por medio de la B...
Análisis de una inversión en activos financieros negociados por medio de la B...Alvaro Enrique Ruano
 
Solución de problemas y ciclo de vida del desarrollo de software
Solución de problemas y ciclo de vida del desarrollo de softwareSolución de problemas y ciclo de vida del desarrollo de software
Solución de problemas y ciclo de vida del desarrollo de softwareAlvaro Enrique Ruano
 

Más de Alvaro Enrique Ruano (16)

Resumen caso Enron
Resumen caso EnronResumen caso Enron
Resumen caso Enron
 
Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)
 
Árboles Multicamino, B y B+
Árboles Multicamino, B y B+Árboles Multicamino, B y B+
Árboles Multicamino, B y B+
 
Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
 
Introducción al análisis de algoritmos
Introducción al  análisis de algoritmosIntroducción al  análisis de algoritmos
Introducción al análisis de algoritmos
 
Ordenamientos por selección y Shell
Ordenamientos por selección y ShellOrdenamientos por selección y Shell
Ordenamientos por selección y Shell
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
Programación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresProgramación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructores
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clases
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismo
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Técnicas de programación
Técnicas de programaciónTécnicas de programación
Técnicas de programación
 
Análisis de una inversión en activos financieros negociados por medio de la B...
Análisis de una inversión en activos financieros negociados por medio de la B...Análisis de una inversión en activos financieros negociados por medio de la B...
Análisis de una inversión en activos financieros negociados por medio de la B...
 
Solución de problemas y ciclo de vida del desarrollo de software
Solución de problemas y ciclo de vida del desarrollo de softwareSolución de problemas y ciclo de vida del desarrollo de software
Solución de problemas y ciclo de vida del desarrollo de software
 

Último

Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfjuanjosebarreiro704
 
Virus informático (tipos y opciones para prevenir)
Virus informático (tipos y opciones para prevenir)Virus informático (tipos y opciones para prevenir)
Virus informático (tipos y opciones para prevenir)edisonquispecalderon
 
trabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxtrabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxlasocharfuelan123
 
Los desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsLos desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsFederico Toledo
 
MODULO BASICO DE WORD - I CICLO.DOC.DOC.
MODULO BASICO DE WORD - I CICLO.DOC.DOC.MODULO BASICO DE WORD - I CICLO.DOC.DOC.
MODULO BASICO DE WORD - I CICLO.DOC.DOC.CarmenFlores88207
 
Tkinter para python (curso de interfaces gráficas)
Tkinter para python (curso de interfaces gráficas)Tkinter para python (curso de interfaces gráficas)
Tkinter para python (curso de interfaces gráficas)martinezhd1
 
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...cuentauniversidad34
 
LA CALIDAD DE LA INFORMACION EN LA NUEVA ERA DEL INTERNET
LA CALIDAD DE LA INFORMACION  EN LA NUEVA ERA DEL INTERNETLA CALIDAD DE LA INFORMACION  EN LA NUEVA ERA DEL INTERNET
LA CALIDAD DE LA INFORMACION EN LA NUEVA ERA DEL INTERNETCasa
 

Último (8)

Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
Virus informático (tipos y opciones para prevenir)
Virus informático (tipos y opciones para prevenir)Virus informático (tipos y opciones para prevenir)
Virus informático (tipos y opciones para prevenir)
 
trabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxtrabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docx
 
Los desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsLos desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMs
 
MODULO BASICO DE WORD - I CICLO.DOC.DOC.
MODULO BASICO DE WORD - I CICLO.DOC.DOC.MODULO BASICO DE WORD - I CICLO.DOC.DOC.
MODULO BASICO DE WORD - I CICLO.DOC.DOC.
 
Tkinter para python (curso de interfaces gráficas)
Tkinter para python (curso de interfaces gráficas)Tkinter para python (curso de interfaces gráficas)
Tkinter para python (curso de interfaces gráficas)
 
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
 
LA CALIDAD DE LA INFORMACION EN LA NUEVA ERA DEL INTERNET
LA CALIDAD DE LA INFORMACION  EN LA NUEVA ERA DEL INTERNETLA CALIDAD DE LA INFORMACION  EN LA NUEVA ERA DEL INTERNET
LA CALIDAD DE LA INFORMACION EN LA NUEVA ERA DEL INTERNET
 

Ordenamientos rápido y mezcla

  • 2. Contenido ● Ordenamiento ● Métodos de Ordenamiento o Intercambio o Burbuja o Por Inserción o Por Selección o Shell o Rápido (Quick) o Por Mezcla (Merge)
  • 3. Ordenamiento Rápido ● Más conocido como “Quicksort”. ● Se basa en el hecho de que es más fácil y rápido ordenar dos listas pequeñas que una lista grande. ● Se llama método de ordenación rápida porque, en general, puede ordenar una lista de datos mucho más rápidamente que cualquiera de los otros métodos vistos. ● Se basa en la estrategia típica de “Divide y vencerás”.
  • 4. Ordenamiento Rápido ● La lista a ordenar debe dividirse en dos sublistas. ● La primera sublista deberá contener todos los valores menores a un cierto valor, mientras que la otra deberá contener los mayores. ● El valor que divide las dos sublistas es llamado “Pivote”. ● El Pivote puede ser cualquier valor arbitrario del vector.
  • 5. Ordenamiento Rápido ● Se toma como pivote el primer elemento de la lista. ● Se recorre el arreglo de izquierda a derecha buscando elementos mayores que el pivote. ● Se recorre el arreglo de derecha a izquierda buscando elementos menores que el pivote. ● Al encontrar los valores mencionados anteriormente, se realiza un intercambio.
  • 6. Ordenamiento Rápido ● El objetivo es que la lista se vea de la siguiente forma: ● Luego que se tiene el arreglo de esta form,a VI y VD se deben ordenar de forma recursiva teniendo como caso base cuando los subarreglos tienen una longitud de 1. VI Pivote VD Subvector que contiene los valores inferiores o iguales desordenados. Valor de separación. Subvector que contiene los valores superiores o iguales desordenados.
  • 9.
  • 10.
  • 12. Ordenamiento Por Mezcla ● Ordenamiento por mezcla o “Merge” ● Se basa en la estrategia de “Divide y Vencerás”. ● Consiste en tomar 2 arreglos ordenados y mezclarlos para formar un nuevo arreglo ordenado.
  • 13. Ordenamiento Por Mezcla ● Pasos 1. Dividir por la mitad el arreglo desordenado en 2 arreglos y se continúa de esa manera hasta llegar a arreglos de 1 elemento. 2. Se inicia el proceso de mezcla entre arreglos ordenando cada nivel hasta llegar al arreglo original ordenado. 3. Seleccionar el elemento menor de los 2 arreglos y situarlo en la posición 1 de un nuevo arreglo. 4. Comparar los subsiguientes elementos de los 2 arreglos existentes y colocar primero el elemento más pequeño. 5. Realizar esta operación hasta que se obtenga un único arreglo ordenado.
  • 16.
  • 17.
  • 18. Asistencia ● Toma de asistencia.
  • 19. Gracias por su atención