Merge Sort | Ordenamiento por mezcla
Vložit
- čas přidán 8. 07. 2024
- Merge Sort o el ordenamiento por mezcla es uno de los algoritmos de ordenamiento clásicos para estudiar el patron de diseño de divide y vencerás.
Es un algoritmo recursivo que tiene una complejidad de O(n log(n)).
En este video explico el algoritmo y muestro su implementación usando Python.
Contenido:
0:00 Intro
0:31 Explicación general
1:33 Ejemplo Cartas
4:00 Código
7:13 Análisis complejidad
Libros recomendados:
kit.co/schiob
Apóyame con una pizza:
www.buymeacoffee.com/schiob
Para contenido atrás de cámara y fotos de comida sígueme en:
/ schiob
/ schiob
github.com/schiob
Amigo, ya he visto como 4 videos de hasta distintas fuentes sobre este algoritmo, y de lejos usted dio la mejor explicación. Gracias de verdad, te mereces más crecimiento en YT
Excelente explicación, muchas gracias
Un excelente profe!!!! Me has ayudado en toda la materia a entender esto que parecia imposible al comienzo, Gracias!
Excelente explicación ! Saludos
Gracias, me sirvió el video para entender mejor un aspecto del algoritmo
epale que bueno que retomaste los videos jejeje no te pierdas tanto son muy bueno tus videos
6:30 era esto lo que no entendia, gracias : )
tiempo sin verte chio, jajajjajaj espero verte mas seguido
Hermoso!
Muy bien explicado!👍
Muchas gracias!!
Muy buen video
excelente!!
Buen video bb
una pregunta, al subdividir el array inicial en dos arrays, uno que va desde el elemento 0 hasta el elemento que está en el medio y el otro array desde el elemento del medio hasta el último elemento, no estarías duplicando el elemento que está en el medio?
Chio me podrías ayudar con la estabilidad y los requerimientos de memoria de merge sort tengo una exposición mañana amigo!
Buenas Chio!, la impresion del arreglo donde iria?
Entiendo cómo funciona el algoritmo, pero no entiendo en qué parte de esa fórmula se ordenaron las subarrays. Me lo podrías explicar? Gracias!
Me queda una pequeña duda sobre la complejidad temporal en el mejor de los casos y en el peor de los casos. Es decir, por ejemplo, se podría decir que en el mejor de los casos estamos ordenando un arreglo de una sola posición por lo cual no entra en juego a recursividad (Aunque esto también podría decir que es un caso invalido para el tema del ordenamiento). Como se interpreta ese concepto de "Mejor de los Casos" y "Peor de los Casos". Pensaría que es solamente se considera un arreglo de más de una posición ordenado ascendente = "Mejor de los Casos" y un arreglo de más de una posición descendente = "Peor de los casos". ¿Me podrías apoyar a aclarar ese punto?
Cool
Gracias Chío, entendí más que lo que me enseñaron en la U jajaja
Cuando se divide el arreglo se hace de cualquier forma ? O hay alguna regla para ello?
Por ejemplo si yo dividia ese arreglo del inicio en 8-7-9 y 2-4 daba igual?
Pues si el propio método está bien implementado, no debería de haber problema 👍
So yo también quiero ser desarrollador backend y diseño de arquitectura de software y sistemas distribuidos que debo estudiar?
Hola Gatovsky, justo tengo un videito del path de un programador backend, de ahí puedes seguir a ver temas de diseño y arquitectura. Lo que si es que es todo un camino así que no te desanimes y continua estudiando :)
En la explicación dada, encontré algunas lagunas de cómo se hacen las cosas, es decir, no se explica a detalle el funcionamiento del algoritmo, sino más bien, se dan las ideas generales de la técnica, pero a la hora de resolver un caso especifico, quedan sin explicar algunos puntos clave, que supongo se le dejan al espectador para que él por cuenta propia los investigue. Así, esta explicación, aunque buena para algunos, para otros es insuficiente y obscura en algunos puntos.
Chale, la parte de mezclar es la que más se me dificulta con este algoritmo
Se ve relativamente más facil en python, en java es algo más complejo
Este algoritmo no lo tienes en la lista de algoritmos, para que lo incluyas , ais es mas fácil ver todo el contenido relacionado y cambiale la letra a la formula del big O recursivo no se ve nada xD pd : esa funcion merge si esta enrredadilla eje , Gracis!
Gracias por el feedback, voy a agregarlos también a la lista de algoritmos :)