Estudio Ingeniería Informática en 4to curso y me centro en algorítmica y aún así es muy disfrutable escuchar a Nate hablar de programación, GRANDE. Los algoritmos para ejecución online, flujos de datos o minería de datos son muy interesantes y resuelven algunos problemas de forma muy inteligente. Estoy seguro de que sería muy disfrutable ver un vídeo sobre el tema con este tono sencillo y desenfadado.
la verdad es que si, si no vienes de una base sobre este mundillo, esto te da una entrada bastante interesante y te llena de mas curiosidad sobre estos temas!
totalmente de acuerdo, en la universidad llevé dos materias, Estructura de Datos y Algoritmos (I y II) y en el temario se abarca la eficiencia de los algoritmos. Después de ver el vídeo me sorprende como Nate abarca conceptos complejos (la notación de Big O y los diferentes casos) de manera simplificada pero efectiva, además de que visualmente (las animaciones) están muy buenas y ayuda a comprender mucho lo que va narrando Nate. Me atrevería a decir que si este vídeo tuviera un algo más de teoría, podría ser usado como un gran complemento a las clases universitarias, un recurso didáctico que sin duda sería muy consultado a lo largo de los años
El mejor video acerca de la programación que he visto, muy visual y fácil de entender para todo el mundo incluso para quienes no programan, y vaya trabajazo del editor realizando las animaciones. Muy buen video Nate.
Ando estudiando una maestría en inteligencia artificial y acabas de resumir en 20 minutos todo el temario de una materia llamada Complejidad Computacional, que grande eres tú y tu equipo!
Este video tanto como los otros de programación valen oro, tiene una forma de explicar y enseñar que es increíble Nate, me gustaría que traigas más de estos contenidos del mundo de la programación y informática a profundidad, muchas gracias
Nate, tienes razón! estos tipos de videos ayudan a las personas a entender poco de lo que nos enfrentamos los desarrolladores de software día a día. Ayudan a comprender mejor el mundo digital que los rodea a las personas alejadas de este mundillo.
Nate me llevaste de nuevo a la uni cuando estaba estudiando sistemas, por allá entonces la materia se llamaba estructuras de datos, misma que reprobe gracias a mi mente neofita que no lograba entender los metodos de ordenamiento :(. Como me hubiera ayudado este video en su momento, explicas de la mejor manera posible. Gracias por estos vídeos la gente entiende mejor el arte de programar ❤
Soy graduado de ingenieria de software y la verdad, ver este video fue como volver a la Uni y re aprender cosas que poco a poco se van olvidando. Nate...eres el mejor.
Como siempre, Nate tiene mucha facilidad para explicar cosas "complejas" de forma entendible y didáctica. Muy recomendables todos y cada uno de los vídeos que tiene en el canal. Ah, por cierto, su libro también es muy interesante si tienes curiosidad sobre los temas que trata.
Muchas gracias por dar visibilidad de nuestra profesión al resto de la gente para que entiendan mejor a que nos dedicamos los programadores ☺️! Que aún hay mucha gente que piensa que reparamos impresoras jajaja
Sería genial que hicieses ese video que propones profundizando en eso Nate. Yo estoy en la Universidad con Informática y es increíble como lo explicas de una manera tan sencilla y completa en menos de 30 minutos a diferencia de la Universidad.
Programé en los finales de los 80 con GW-BASIC y si que era necesario ordenar datos con algoritmos. En esa época se usaba el GOTO y el for era casi el único loop. Asi que ordenábamos con los dos for anidados comparando desde el item del primero hasta el final. Me hiciste acordar de mi profe y mis compas. Gracias Nate
Actualmente estoy en el campus 42 de forma autodidacta y, quepo decir, que hace poco me interesé por el concepto Big O por haberlo visto en videos de ingeniería y, para mi sorpresa, es algo que llevaba haciendo desde que empecé sin darme cuenta. Me molaría muchísimo ver más cosas sobre este tema Nate, es muy curioso y además para personas que simplemente se ponen a programar sin plantearse como escala su algoritmo es genial.
¡Qué buen vídeo, Nate! Hace un tiempo que he querido grabar un vídeo parecido, pero tu calidad es incomparable. Algo que me encanta de las clases de algoritmos en las universidades es que dejan claro por qué los necesitamos en desarrollo de software. Para el cerebro humano, el proceso mental es sencillo, casi como un instinto; pero las computadoras "piensan" de una manera muy distinta. Como dice Marijn Haverbeke en su libro Eloquent JavaScript: "Debido a que las computadoras son bestias tontas y pedantes, programar es fundamentalmente tedioso y frustrante". Este dicho es particularmente cierto cuando tenemos que pensar en la resolución de problemas como este caso. Para todos los interesados en ciencias de la computación o ingeniería de software como carreras, el entendimiento de algoritmos es fundamental para las entrevistas técnicas de hoy en día durante procesos de selección en trabajos, siendo uno de los fundamentos por los que existe y es tan popular algo como LeetCode. Así que mis mejores deseos para todos los que quieren profundizar en ese tema.
Nate estaría increíble una serie en donde expliques los algoritmos y estructuras de datos que existen, los más básicos y comunes al menos, muy buen video! :))
Que grande Nate! Te veo hace años, desde tus videos hablando de progra, me sirvieron bastante para orientar mi carrera profesional, hoy en día ya soy un fullstack, en parte gracias a muchos youtuber que comparten su conocimiento de forma gratuita, no sé si leerás esto, pero si algún día vienes a Chile, te invito un vinito o un canuto, saludos!
Todo empieza con un 'Hello World!' y con los años vas a aprendiendo a interactuar con las maquinas mientras vas olvidando de como hacerlo con los humanos.
recuerdo que uno de los primeros que vi de Nate era sobre "como programar o como funciona la programacion" hace ya bastante años, me da nostalgia viendo que volvio a ese tema otra vez
Uff bro, apenas vi esos temas en mi clase de diseño y analisis de algoritmos, en mi carrera de ingeniería en computación, tocara repasar lo aprendido, saludos Nate 🙏🏽
Videón! Me gustaría que hagas videos explicando la implementación de los algoritmos y hablando más como una especie de tutorial. En mi caso el sitio donde estudié solo nos dio 1 curso de algoritmos y estructura de datos en los que por clase vimos un algoritmo y ahora quisiera aprenderlos como reto personal.
Muchisimo mejor explicado que lo que vi en el curso de la escuela y sobre todo, lo más importante, ACTUALIZADO!!! muchas gracias por siempre explicar de esta manera Nate, eres lo maximo!!!
me fascina ver este tipo de videos ya que estudio ingeniería en tecnologías de la información y es sumamente increíble entender cómo funciona la tecnología que tenemos presente en el día a día
justo estoy cursando diseño de algoritmos, y estamos dando todo esto, sería super útil si hicieras un video explicando más en profundidad el cálculo de la complejidad temporal
12:04 Utilicé una pequeña idea, para una lista de números pares, comparar el elemento numero 1 con el 2 (ordenar), luego el 3 con el 4 (ordenar). No es un algoritmo de ordenamiento, es más bien un algoritmo de pre-ordenamiento. Con ayuda de chat GPT pude combinar esa pequeña idea con el algoritmo de ordenamiento Merge. Y en algunos casos ese pre-ordenamiento puede ayudar. Sí TH-cam me permite, dejare el código en respuesta a este comentario para que puedan utilizarlo en Replit.
def merge_sort_clasico(lista): # Caso base: si la lista tiene un solo elemento o está vacía, ya está ordenada if len(lista) lista[i + 1]: lista[i], lista[i + 1] = lista[i + 1], lista[i] # Función para fusionar dos listas ordenadas def merge(izq, der): resultado = [] i = j = 0 while i < len(izq) and j < len(der): if izq[i] < der[j]: resultado.append(izq[i]) i += 1 else: resultado.append(der[j]) j += 1 resultado.extend(izq[i:]) resultado.extend(der[j:]) return resultado # Merge Sort utilizando los pares ya ordenados paso = 2 # Comenzamos con bloques de 2 elementos ordenados while paso < len(lista): nueva_lista = [] for i in range(0, len(lista), 2 * paso): izq = lista[i:i + paso] der = lista[i + paso:i + 2 * paso] nueva_lista.extend(merge(izq, der)) lista = nueva_lista paso *= 2 return lista # Función principal que elige qué tipo de Merge Sort usar def merge_sort(lista): if len(lista) % 2 == 0: return merge_sort_modificado(lista) else: return merge_sort_clasico(lista) # Función para ingresar una lista solo con números def ingresar_lista(): while True: entrada = input("Ingresa una lista de números separados por espacio, al finalizar presiona enter: ") # Intentamos convertir la entrada a una lista de enteros try: lista = [int(x) for x in entrada.split()] return lista except ValueError: print("¡Error! Por favor, ingresa solo números enteros.") # Obtener la lista del usuario numeros = ingresar_lista() # Ordenar la lista usando el Merge Sort resultado = merge_sort(numeros) # Mostrar el resultado print("Lista ordenada:", resultado)
bro grande lo que acabas de hacer por muy sencillo que parezca...hiciste algo que nadi emas se atreve a hacer por que dan por hecho que la rueda ya esta lista...gracias por compartir.. tienes discord o algo? interesante ser amigo de alguien asi.. felicidades
Que buen video por dios, siempre me ha gustado el tema de la complejidad asintotica y los algoritmos de ordenamiendo y de busqueda y esta explicacion es perfectisima para ponerla a alguien que no sepa que son estos temas, o directamente usar tu los ejemplos del video para explicarlo a alguien mas. Dios que buen video de verdad
Estoy estudiando en segundo semestre, este video me sirve muchisimo porque ese es un tema que estamos observando, por favor has el video de complejidad temporal, explicas super bien :D
No se como le hace Nate para explicar algo tan complejo y volverlo sencillo, despues de ver este video siento que podria programar, aunque ni siquiera me sepa un solo comando.
Creo que todas las personas deberían estudiar programación aunque sea de una forma muy básica, entender cómo funcionan los algoritmos y a la vez darnos cuentas que todo lo que hacemos en el día a día son algoritmos, nos ayuda a encontrar errores cotidianos, abstraernos de situación y ser más eficientes.
Básicamente porque obliga a usar el pensamiento lógico y sobre todo a subdividir un gran problema en diversos problemas más pequeños de solución más sencilla.
Confirmo! a nivel basico es una herramienta universal, pero los temas mas avanzados ya lo convierten en otra rama de las matematicas que solo haria que el plan de estudios sea mas tedioso
Me encantaria un video donde profundices mas sobre complejidad temporal. Tus videos son muy utiles. Trabajo en sistemas hace mas de 5 años y en estos últimos 2 nos enfocamos en performance, asi que seria de gran ayuda
En el minuto 20:03 podemos ver cómo programa la IA en diferentes monitores mientras los Tech Lead hablan de la serie que vieron anoche. Juniors, Mid y Seniors, temblemos ante el futuro.
En mi universidad dimos una asignatura en el segundo cuatrimestre del primer año llamada fundamentos y análisis de algoritmos, que es de lo que habla este vídeo, a grandes rasgos lo que explica nate es, tenemos un conjunto de datos (en la universidad usamos C++, por lo tanto usábamos arrays de tamaño fijo, nada de vectores, nada de memoria dinámica), estos datos son una serie de números aleatorios, nos daban una función que generaba números aleatorios, en cada laboratorio nos daban un archivo C++ distinto que incluía esta función y un algoritmo, nuestro trabajo consistía en medir la complejidad del algoritmo en el mejor y peor caso haciendo conteos de operaciones elementales, las operaciones aritméticas contaban 1 (o dos si usábamos el operador +=), las asignaciones contaban 2 (lectura del elemento en array y copia) y comparaciones (por ejemplo, en cada if hay una condición con dos valores, si el el valor 1 es menor que el 2, esto se consideraba 3 operaciones elementales, lectura del valor 1, lectura del valor 2 y comparación), y como esto es solamente para un array de dos elementos no nos servía, por lo tanto teníamos que usar bucles (for o si querían putear, while), que es cuando realmente se complicaba todo porque teníamos que resumirlo en sumatorios de tantos números como tuviera el array. Luego todos estos datos teníamos que meterlo en un excel y diseñar una gráfica, mandárselo al profesor y rezar hasta el final del cuatrimestre porque no te daban las notas hasta el final. No parece demasiado difícil y de hecho considero que no lo es en exceso, pero los profesores no ayudaban en nada, nos soltaban el archivo C++ y nos teníamos que buscar la vida que al fin y al cabo es de lo que trata la universidad, el que fuera mas espabilado aprendía a depurar (usábamos Visual Studio Community) y conseguía entender algo mejor el código, pero ni con eso sacabas la asignatura porque no tenías retroalimentación, los profesores no te decían si habías aprobado los laboratorios hasta que los terminabas todos. En resumen creo que es una asignatura muy interesante pero con el profesorado adecuado y con retroalimentación para saber en qué estamos metiendo la pata, y nada de chatgpt, algunos compañeros lo usaban y se nos caía hasta las lágrimas de la pechá de reír que nos dábamos cuando veíamos las gráficas tan exageradas
Yo en la carrera tuve un examen de muchos métodos de ordenamiento y me voló la cabeza estudiarlo, no hay videos así que te expliquen el ordenamiento más que el código
วันที่ผ่านมา
Excelente video, Mi voto ✋🏻para una explicación más detallada de la complejidad temporal por favor. Gracias Nate!
Bendito sean los frameworks jejejeje nada como un .sort en una lista, pero estuvo bueno conocer como funciona todo. Agradecido desde aca con todo esos genios que previamente se dieron a esta tarea.
16:37 El "I can't believe it can sort" es literalmente el algoritmo de ordenación que hice cuando estudié iniciación a la programación. Aunque el ejemplo que sale en pantalla ordena de mayor a menor. Para mi tiene toda la lógica del mundo, no es muy difícil de entender si lo miras detalladamente. Básicamente, cuando termina el primer nivel de bucle (i=1) lo que ha hecho es llevar el mayor elemento de toda la lista a la posición 1, luego (cuando i=2) el mayor de los que quedan a la posición 2, etc... Para mi en ese momento era el más evidente, aunque un poco basto 😅
Como siempre una maravilla tus videos Nate, estudie Ingeniería en Desarrollo y Gestión de Software y estos temas (Programación estructurada y estructura de datos si o si vienen) y que mejor que comenzar el día a tirara código que recordar estos temas básicos de tu carrera que son de mucha importancia Saludos!!!
Buen video Nate para mi lo más interesante es lo q hiciste de pausar e incitar a intentar mejorarlo en la Uni me hicieron lo mismo y te "inventado" el merge Sort
Con este video acabas de ganar un comprador para tu libro, el fin de semana que cobre lo compraré y si, haz un video de la complejidad temporal en la programación. 😊😊
14:42 es lo que más me llamó la atención, me gustan mucho las matemáticas y me causa curiosidad como se calcula la complejidad temporal para llegar a esas funciones
Me gustaía que si hagas el video explicando la complegidad temporal. No soy tan rápido para desarrollar algoritmos, pero ahí vamos También, tengo otra idea de un video para tí. Recientemente hay muchos vendedores de cursos de programación que hacen video prácticamente quitándole importancia a las matemáticas, o al menos diciendo que no hay que usar tantas como nos lo venden en las universidades. Si puedes hacer un video explicando cuanta matemática se necesita para ser un programador, te lo agradecería mucho. Saludos desde Madrid
Ya, pero nadie va a dar su algoritmo de ordenamiento rápido? Muy buen vídeo Nate, soy estudiante de ing. mecatrónica y tus videos me han servido muchísimo para lo que sé de programación
Estudio Ingeniería Informática en 4to curso y me centro en algorítmica y aún así es muy disfrutable escuchar a Nate hablar de programación, GRANDE. Los algoritmos para ejecución online, flujos de datos o minería de datos son muy interesantes y resuelven algunos problemas de forma muy inteligente. Estoy seguro de que sería muy disfrutable ver un vídeo sobre el tema con este tono sencillo y desenfadado.
la verdad es que si, si no vienes de una base sobre este mundillo, esto te da una entrada bastante interesante y te llena de mas curiosidad sobre estos temas!
totalmente de acuerdo, en la universidad llevé dos materias, Estructura de Datos y Algoritmos (I y II) y en el temario se abarca la eficiencia de los algoritmos. Después de ver el vídeo me sorprende como Nate abarca conceptos complejos (la notación de Big O y los diferentes casos) de manera simplificada pero efectiva, además de que visualmente (las animaciones) están muy buenas y ayuda a comprender mucho lo que va narrando Nate. Me atrevería a decir que si este vídeo tuviera un algo más de teoría, podría ser usado como un gran complemento a las clases universitarias, un recurso didáctico que sin duda sería muy consultado a lo largo de los años
El mejor video acerca de la programación que he visto, muy visual y fácil de entender para todo el mundo incluso para quienes no programan, y vaya trabajazo del editor realizando las animaciones. Muy buen video Nate.
el animador es un verdadero genio
Justo tengo entrevista técnica mañana, que grande eres brother
Exitos!
Suerte mi pana
Suerte , y después nos actualizas .
tu puedes bro !!!
suerte pa
Ando estudiando una maestría en inteligencia artificial y acabas de resumir en 20 minutos todo el temario de una materia llamada Complejidad Computacional, que grande eres tú y tu equipo!
Este video tanto como los otros de programación valen oro, tiene una forma de explicar y enseñar que es increíble Nate, me gustaría que traigas más de estos contenidos del mundo de la programación y informática a profundidad, muchas gracias
Nate, tienes razón! estos tipos de videos ayudan a las personas a entender poco de lo que nos enfrentamos los desarrolladores de software día a día. Ayudan a comprender mejor el mundo digital que los rodea a las personas alejadas de este mundillo.
Nate me llevaste de nuevo a la uni cuando estaba estudiando sistemas, por allá entonces la materia se llamaba estructuras de datos, misma que reprobe gracias a mi mente neofita que no lograba entender los metodos de ordenamiento :(. Como me hubiera ayudado este video en su momento, explicas de la mejor manera posible. Gracias por estos vídeos la gente entiende mejor el arte de programar ❤
Hace 8 años que te sigo, y hace 1 mes aprobé programación, y me sacas este videazo!!!!!
En la uni me hicieron estudiar todos los clásicos, insert, bubble, quick, merge, y los exámenes consistían en saber programarlos, duro la verdad.
Soy graduado de ingenieria de software y la verdad, ver este video fue como volver a la Uni y re aprender cosas que poco a poco se van olvidando. Nate...eres el mejor.
15:58 JAJAJAJAJA, no me lo esperé! Lo mejor del vídeo, me eché unas buenas risas
ok!
Ya era hora que subas video de programacion nate, nos tenias olvidaos
Como siempre, Nate tiene mucha facilidad para explicar cosas "complejas" de forma entendible y didáctica. Muy recomendables todos y cada uno de los vídeos que tiene en el canal. Ah, por cierto, su libro también es muy interesante si tienes curiosidad sobre los temas que trata.
eres un bot? por curiosidad
@ No, ¿por qué? Me gusta mucho el contenido de Nate.
🤯 NO se nada de programación pero Nate hace tan entretenidos sus videos y didácticos que no me pierdo ni uno y poco a voy aprendiendo.
Muchas gracias por dar visibilidad de nuestra profesión al resto de la gente para que entiendan mejor a que nos dedicamos los programadores ☺️! Que aún hay mucha gente que piensa que reparamos impresoras jajaja
Sería genial que hicieses ese video que propones profundizando en eso Nate. Yo estoy en la Universidad con Informática y es increíble como lo explicas de una manera tan sencilla y completa en menos de 30 minutos a diferencia de la Universidad.
Programé en los finales de los 80 con GW-BASIC y si que era necesario ordenar datos con algoritmos. En esa época se usaba el GOTO y el for era casi el único loop. Asi que ordenábamos con los dos for anidados comparando desde el item del primero hasta el final. Me hiciste acordar de mi profe y mis compas. Gracias Nate
Actualmente estoy en el campus 42 de forma autodidacta y, quepo decir, que hace poco me interesé por el concepto Big O por haberlo visto en videos de ingeniería y, para mi sorpresa, es algo que llevaba haciendo desde que empecé sin darme cuenta. Me molaría muchísimo ver más cosas sobre este tema Nate, es muy curioso y además para personas que simplemente se ponen a programar sin plantearse como escala su algoritmo es genial.
¡Qué buen vídeo, Nate! Hace un tiempo que he querido grabar un vídeo parecido, pero tu calidad es incomparable. Algo que me encanta de las clases de algoritmos en las universidades es que dejan claro por qué los necesitamos en desarrollo de software. Para el cerebro humano, el proceso mental es sencillo, casi como un instinto; pero las computadoras "piensan" de una manera muy distinta. Como dice Marijn Haverbeke en su libro Eloquent JavaScript: "Debido a que las computadoras son bestias tontas y pedantes, programar es fundamentalmente tedioso y frustrante". Este dicho es particularmente cierto cuando tenemos que pensar en la resolución de problemas como este caso. Para todos los interesados en ciencias de la computación o ingeniería de software como carreras, el entendimiento de algoritmos es fundamental para las entrevistas técnicas de hoy en día durante procesos de selección en trabajos, siendo uno de los fundamentos por los que existe y es tan popular algo como LeetCode. Así que mis mejores deseos para todos los que quieren profundizar en ese tema.
14:30 yo entre justamente porque esperaba ese detalle 🤣, ojalá llegue la parte 2 👍
Nate estaría increíble una serie en donde expliques los algoritmos y estructuras de datos que existen, los más básicos y comunes al menos, muy buen video! :))
Que grande Nate! Te veo hace años, desde tus videos hablando de progra, me sirvieron bastante para orientar mi carrera profesional, hoy en día ya soy un fullstack, en parte gracias a muchos youtuber que comparten su conocimiento de forma gratuita, no sé si leerás esto, pero si algún día vienes a Chile, te invito un vinito o un canuto, saludos!
No tengo ni pajolera de programación (bueno, ahora un poco más) pero me lo he visto entero 10/10
sabes antes de abrir youtube anote en una libreta personal que voy a leer sobre python pero esto me ha hackeado la vida y mejorado xd gracias Nate
Todo empieza con un 'Hello World!' y con los años vas a aprendiendo a interactuar con las maquinas mientras vas olvidando de como hacerlo con los humanos.
Real, me pasó, me concentre tanto en mejorar mis habilidades de programación que perdí prácticamente todas mis habilidades sociales
Jajajajaja como todo programador antisocial
es normal no puedes mantener dos habilidades que van ligadas indirectamente.
Hace 10 años investigué sobre la complejidad temporal y no había entendido hasta ahora. Muchas gracias Nate!
Amo ver a Nate volviendo a hablar de programación, me recuerda a los viejos tiempos. Grande Nate ❤❤
recuerdo que uno de los primeros que vi de Nate era sobre "como programar o como funciona la programacion" hace ya bastante años, me da nostalgia viendo que volvio a ese tema otra vez
Que grande eres Nate! Por fin un video de programación! Saludos de un desarrollador frontend desde Perú!
Me alegra mucho que toques estos tipos de temas. En la universidad algoritmia era de mis asignaturas preferidas.
Uff bro, apenas vi esos temas en mi clase de diseño y analisis de algoritmos, en mi carrera de ingeniería en computación, tocara repasar lo aprendido, saludos Nate 🙏🏽
Videón! Me gustaría que hagas videos explicando la implementación de los algoritmos y hablando más como una especie de tutorial. En mi caso el sitio donde estudié solo nos dio 1 curso de algoritmos y estructura de datos en los que por clase vimos un algoritmo y ahora quisiera aprenderlos como reto personal.
A parte que te dejas entender muy bien a comparación de algunos profesores!
Necesito el video de complejidad temporal, tipos de datos y mucho mas😊😊
Me encanto, la forma de explicar y como se muestra es no solamente entretenida si no también informativa
Muchisimo mejor explicado que lo que vi en el curso de la escuela y sobre todo, lo más importante, ACTUALIZADO!!! muchas gracias por siempre explicar de esta manera Nate, eres lo maximo!!!
me fascina ver este tipo de videos ya que estudio ingeniería en tecnologías de la información y es sumamente increíble entender cómo funciona la tecnología que tenemos presente en el día a día
Que bien sienta justo haber aprobado la asignatura de algorítmica y complejidad y después encontrarte con este vídeo
Que videazo Nate, en su momento en la carrera me costó entender esto, si hubiera tenido el video lo hubiera entendido a la primera xD.
Big O suena a nombre de villano de anime, pero en realidad es el verdadero jefe final de todo programador. 🎮😵💻
justo estoy cursando diseño de algoritmos, y estamos dando todo esto, sería super útil si hicieras un video explicando más en profundidad el cálculo de la complejidad temporal
12:04 Utilicé una pequeña idea, para una lista de números pares, comparar el elemento numero 1 con el 2 (ordenar), luego el 3 con el 4 (ordenar). No es un algoritmo de ordenamiento, es más bien un algoritmo de pre-ordenamiento. Con ayuda de chat GPT pude combinar esa pequeña idea con el algoritmo de ordenamiento Merge. Y en algunos casos ese pre-ordenamiento puede ayudar. Sí TH-cam me permite, dejare el código en respuesta a este comentario para que puedan utilizarlo en Replit.
def merge_sort_clasico(lista):
# Caso base: si la lista tiene un solo elemento o está vacía, ya está ordenada
if len(lista) lista[i + 1]:
lista[i], lista[i + 1] = lista[i + 1], lista[i]
# Función para fusionar dos listas ordenadas
def merge(izq, der):
resultado = []
i = j = 0
while i < len(izq) and j < len(der):
if izq[i] < der[j]:
resultado.append(izq[i])
i += 1
else:
resultado.append(der[j])
j += 1
resultado.extend(izq[i:])
resultado.extend(der[j:])
return resultado
# Merge Sort utilizando los pares ya ordenados
paso = 2 # Comenzamos con bloques de 2 elementos ordenados
while paso < len(lista):
nueva_lista = []
for i in range(0, len(lista), 2 * paso):
izq = lista[i:i + paso]
der = lista[i + paso:i + 2 * paso]
nueva_lista.extend(merge(izq, der))
lista = nueva_lista
paso *= 2
return lista
# Función principal que elige qué tipo de Merge Sort usar
def merge_sort(lista):
if len(lista) % 2 == 0:
return merge_sort_modificado(lista)
else:
return merge_sort_clasico(lista)
# Función para ingresar una lista solo con números
def ingresar_lista():
while True:
entrada = input("Ingresa una lista de números separados por espacio, al finalizar presiona enter: ")
# Intentamos convertir la entrada a una lista de enteros
try:
lista = [int(x) for x in entrada.split()]
return lista
except ValueError:
print("¡Error! Por favor, ingresa solo números enteros.")
# Obtener la lista del usuario
numeros = ingresar_lista()
# Ordenar la lista usando el Merge Sort
resultado = merge_sort(numeros)
# Mostrar el resultado
print("Lista ordenada:", resultado)
bro grande lo que acabas de hacer por muy sencillo que parezca...hiciste algo que nadi emas se atreve a hacer por que dan por hecho que la rueda ya esta lista...gracias por compartir.. tienes discord o algo? interesante ser amigo de alguien asi.. felicidades
Justo me sale este video cuando acabo de aprobar Fundamentos de la algoritmia😩
Videazo Nate :)
Mis congratulaciones a todo aquel que haya sido capaz de terminar el video sin ser programador ni nada relacionado. Sois pocos.
Que buen video por dios, siempre me ha gustado el tema de la complejidad asintotica y los algoritmos de ordenamiendo y de busqueda y esta explicacion es perfectisima para ponerla a alguien que no sepa que son estos temas, o directamente usar tu los ejemplos del video para explicarlo a alguien mas. Dios que buen video de verdad
Estoy estudiando en segundo semestre, este video me sirve muchisimo porque ese es un tema que estamos observando, por favor has el video de complejidad temporal, explicas super bien
:D
No se como le hace Nate para explicar algo tan complejo y volverlo sencillo, despues de ver este video siento que podria programar, aunque ni siquiera me sepa un solo comando.
Necesito el video de Big O porque literalmente es la primera vez que alguien me lo explicó y le entendí jaja
Mi favorito es el counting sort. Aunque rara vez se puede utilizar, cuando se puede utilizar tiene un peor caso de O(n)
sin exagerar, el mejor o de los mejores videos de programacion que he visto este 2025
Yo queriendo estar en el mundo de Backend... Y con estos vídeos me motivan más
Que grande, resumiendo mi asignatura de eda (estructura de datos y algoritmos)en un video de 22min
creo que este ha sido uno de tus videos mas teoricos que has presentado hasta la fecha
Estos tipos de videos son increíbles! Ojala profundices con mas contenido asi
Soy Cientifico de Datos, y amo escuchar a Nate hablar de IA y programación. Sos un grande amigo!
Este video me hubiera servido enormemente el anterior año, pero gracias por tremendo video me sirvio mucho para reforzar lo que ya habia visto
oh, echaba de menos este tipo de videos! Droga de la buena jajajaj grande Nate
Hola Nate, buen video. Parte por la que empecé a seguirte fue por la programación, y me gusta ver los videos al respecto.
Creo que todas las personas deberían estudiar programación aunque sea de una forma muy básica, entender cómo funcionan los algoritmos y a la vez darnos cuentas que todo lo que hacemos en el día a día son algoritmos, nos ayuda a encontrar errores cotidianos, abstraernos de situación y ser más eficientes.
Estoy de acuerdo deberia ser una materia escolar.
Básicamente porque obliga a usar el pensamiento lógico y sobre todo a subdividir un gran problema en diversos problemas más pequeños de solución más sencilla.
Debería de ser enseñado como escribir y leer
Confirmo! a nivel basico es una herramienta universal, pero los temas mas avanzados ya lo convierten en otra rama de las matematicas que solo haria que el plan de estudios sea mas tedioso
Es cierto. Me ayuda a ordenar la lista del super alfabéticamente. 😂
con este video, ya soy uno mas de Mastermind
Sí más vídeos como estos, sí me gustaría entender mejor la complejitad temporal con sus tipos y cómo calcular.
Me encantaria un video donde profundices mas sobre complejidad temporal. Tus videos son muy utiles. Trabajo en sistemas hace mas de 5 años y en estos últimos 2 nos enfocamos en performance, asi que seria de gran ayuda
Aprendo más con Nate, que con los cursos otros videos y páginas que hay en la web jajaja
En el minuto 20:03 podemos ver cómo programa la IA en diferentes monitores mientras los Tech Lead hablan de la serie que vieron anoche. Juniors, Mid y Seniors, temblemos ante el futuro.
excelente video Nate, lo vi en el curso de Estructura de Datos en mi segundo ciclo de la carrera de Informática :D!
justo vimos el tema de big O a la hora justa que publicaste el video, la clase fue de análisis de algoritmos
Gracias Nate, super interesante. Sin duda apoyo el seguir con este tipo de videos... 🎉
Muy tarde nate, ya perdi mi clase de algoritmos
En mi universidad dimos una asignatura en el segundo cuatrimestre del primer año llamada fundamentos y análisis de algoritmos, que es de lo que habla este vídeo, a grandes rasgos lo que explica nate es, tenemos un conjunto de datos (en la universidad usamos C++, por lo tanto usábamos arrays de tamaño fijo, nada de vectores, nada de memoria dinámica), estos datos son una serie de números aleatorios, nos daban una función que generaba números aleatorios, en cada laboratorio nos daban un archivo C++ distinto que incluía esta función y un algoritmo, nuestro trabajo consistía en medir la complejidad del algoritmo en el mejor y peor caso haciendo conteos de operaciones elementales, las operaciones aritméticas contaban 1 (o dos si usábamos el operador +=), las asignaciones contaban 2 (lectura del elemento en array y copia) y comparaciones (por ejemplo, en cada if hay una condición con dos valores, si el el valor 1 es menor que el 2, esto se consideraba 3 operaciones elementales, lectura del valor 1, lectura del valor 2 y comparación), y como esto es solamente para un array de dos elementos no nos servía, por lo tanto teníamos que usar bucles (for o si querían putear, while), que es cuando realmente se complicaba todo porque teníamos que resumirlo en sumatorios de tantos números como tuviera el array.
Luego todos estos datos teníamos que meterlo en un excel y diseñar una gráfica, mandárselo al profesor y rezar hasta el final del cuatrimestre porque no te daban las notas hasta el final.
No parece demasiado difícil y de hecho considero que no lo es en exceso, pero los profesores no ayudaban en nada, nos soltaban el archivo C++ y nos teníamos que buscar la vida que al fin y al cabo es de lo que trata la universidad, el que fuera mas espabilado aprendía a depurar (usábamos Visual Studio Community) y conseguía entender algo mejor el código, pero ni con eso sacabas la asignatura porque no tenías retroalimentación, los profesores no te decían si habías aprobado los laboratorios hasta que los terminabas todos.
En resumen creo que es una asignatura muy interesante pero con el profesorado adecuado y con retroalimentación para saber en qué estamos metiendo la pata, y nada de chatgpt, algunos compañeros lo usaban y se nos caía hasta las lágrimas de la pechá de reír que nos dábamos cuando veíamos las gráficas tan exageradas
Nate, haces que aprender sea divertido, GRACIAS!
Yo en la carrera tuve un examen de muchos métodos de ordenamiento y me voló la cabeza estudiarlo, no hay videos así que te expliquen el ordenamiento más que el código
Excelente video, Mi voto ✋🏻para una explicación más detallada de la complejidad temporal por favor.
Gracias Nate!
Deberia ser una seguidilla de videos! 🙏
Gracias por llevarme a una de las clases que más disfruté en la uni: “Algoritmia”
Si hubieran profesores así en mi carrera explicando los cursos de programación seria el paraíso 👨🏻💻🤩
disculpe señor nate gentile es posible hacer un algoritmo de ordenacion que usara muchas garras con camaras para hacerlo mas rapido
Bendito sean los frameworks jejejeje nada como un .sort en una lista, pero estuvo bueno conocer como funciona todo. Agradecido desde aca con todo esos genios que previamente se dieron a esta tarea.
16:37 El "I can't believe it can sort" es literalmente el algoritmo de ordenación que hice cuando estudié iniciación a la programación. Aunque el ejemplo que sale en pantalla ordena de mayor a menor. Para mi tiene toda la lógica del mundo, no es muy difícil de entender si lo miras detalladamente. Básicamente, cuando termina el primer nivel de bucle (i=1) lo que ha hecho es llevar el mayor elemento de toda la lista a la posición 1, luego (cuando i=2) el mayor de los que quedan a la posición 2, etc... Para mi en ese momento era el más evidente, aunque un poco basto 😅
Como siempre una maravilla tus videos Nate, estudie Ingeniería en Desarrollo y Gestión de Software y estos temas (Programación estructurada y estructura de datos si o si vienen) y que mejor que comenzar el día a tirara código que recordar estos temas básicos de tu carrera que son de mucha importancia
Saludos!!!
No me he enterado de nada pero eres muy gentil, grande nate!
No dejemos fuera el Bogo Sort, que en algún lugar de su infinitud de malos resultados, logrará ordenar los datos en tiempo record
me copan estos videos, sobre todo lo entretenidos que son gracias a un guion bien elaborado
Buen video Nate para mi lo más interesante es lo q hiciste de pausar e incitar a intentar mejorarlo en la Uni me hicieron lo mismo y te "inventado" el merge Sort
Bro que hermoso video y por dios que cambio fisico metiste, sos un genio Nate 🦾
Sería genial el vídeo de la complejidad temporal Nate
Quiero mas de este vicio sin pagar el mastermind jejeje
Con este video acabas de ganar un comprador para tu libro, el fin de semana que cobre lo compraré y si, haz un video de la complejidad temporal en la programación. 😊😊
sí queremos un video más detallado sobre la complejidad temporal!👍
se cancela todo, subió nate, por cierto, que buen libro, me llegó a Austria enterito desde España, amo cuando subes conceptos complejos de mi mundillo
😅 Me a servido como refrescamiento!!! Algo vi en la universidad y que hice un ejercicio programático de los métodos.
14:42 es lo que más me llamó la atención, me gustan mucho las matemáticas y me causa curiosidad como se calcula la complejidad temporal para llegar a esas funciones
Grande Nate, aca desarrollando una app cuando la termine te la mando humildemente
Me gustaría que hicieras más contenido sobre programación, sobre todo que explores el tema de algoritmos y estructuras de datos (DSA).
Excelente video, justo ando estudiando estos temas y me ha venido genial. Saludos !! (P.D. Las animaciones WOW !!)
Lo pensé detenidamente y al final la mejor solución que se me ocurrió fue preguntarle a chatGPT 😅😂 12:04
Nate por favor haz ese vídeo explicando la complejidad temporal, los distintos tipos que existen y como se calculan!!
Me gustaía que si hagas el video explicando la complegidad temporal. No soy tan rápido para desarrollar algoritmos, pero ahí vamos
También, tengo otra idea de un video para tí.
Recientemente hay muchos vendedores de cursos de programación que hacen video prácticamente quitándole importancia a las matemáticas, o al menos diciendo que no hay que usar tantas como nos lo venden en las universidades. Si puedes hacer un video explicando cuanta matemática se necesita para ser un programador, te lo agradecería mucho.
Saludos desde Madrid
Magnífico video, fácil de entender, oro puro.
Más videos de estos Nate!
Ya, pero nadie va a dar su algoritmo de ordenamiento rápido?
Muy buen vídeo Nate, soy estudiante de ing. mecatrónica y tus videos me han servido muchísimo para lo que sé de programación