Aclaración (Gracias a @Franco Seguel) sobre la eliminacion en O(1) de un nodo de una Linked List: Según la bibliografía, el hecho de ELIMINAR el elemento de la lisa enlazada es O(1), no se cuenta la iteración que se debe realizar para llegar a ese elemento (ya que los accesos SI son O(n)). La diferencia con un array, es que en el array aunque el acceso sea O(1), el borrado si es O(n). Disculpad si se entiende mal! EMAIL PARA COMPARTIR PROYECTOS A REVISAR EN DIRECTO! 💥 bettatechyt@gmail.com VÍDEO HASH TABLES! 👇🏻👇🏻👇🏻👇🏻 ua-cam.com/video/LluB6jU-SwY/v-deo.html VÍDEO GRAFOS! 👇🏻👇🏻👇🏻👇🏻 ua-cam.com/video/23pdz9VtIBo/v-deo.html
Eliminar un nodo de una Single Linked List (SLL) tiene un coste O(n) en el peor caso. 2 supuestos: 1) Teniendo el puntero al nodo a eliminar: necesitas buscar el nodo anterior (prev) para reconectar la lista una vez eliminado el nodo con el siguiente al eliminado (next). 2) Sin tener el puntero al nodo a eliminar: necesitar buscar el nodo a eliminar, en este caso puede ir guardando el anterior para evitar una nueva búsqueda una vez encontrado. En ambos casos es O(n). En el primer caso podría ser O(1) si la lista fuera doblemente enlazada (DLL), al tener un puntero al prev. Saludos.
@@RafaPaezCOM De hecho, teniendo el puntero al nodo eliminar, puedes copiar la información del siguiente nodo en el mismo, y cambiar el puntero next del nodo actual al puntero next del siguiente, algo así: p.data = p.next.data p.next = p.next.next Con esto lograrías "eliminar" (aunque virtualmente) el nodo p sin tener que iterar. Tenéis razón, al final depende de si contamos el hecho de iterar hacia el respectivo nodo en el coste. Gracias por los comentarios!
@@BettaTech Sí, con ese truco de actualizar el contenido del nodo sí se podría, otra cosa es que se considere un eliminado válido, jeje. De nada, buen vídeo. Un saludo! Edit: este truco no te valdría si el nodo a eliminar fuera el último, verdad?
@@RafaPaezCOM Es un caso especial. Tendrías que tener siempre un nodo fake al final que haga de señuelo, para en ese caso eliminar el ultimo elemento sea asi: a -> b -> c -> dummy -> null a -> b -> dummy -> dummy -> null a -> b -> dummy -> null Gracias a ti por verme y comentar! Me gusta que se hagan debates así en los comentarios 😊
Me alegra darme cuenta que conocía perfectamente todo lo que explicabas y que tengo bien asentadas mis bases en DS y Algoritmos. El vídeo está perfecto para refrescar. Me suscribo.
¡Cierto! Estaría chulo. Yo lo he cubierto en mi canal en inglés: ua-cam.com/video/rgGq6sELoZc/v-deo.html pero igual una versión en castellano al estilo BettaTech molaría :)
La primera vez que vi este video hace unos meses no entendi un carajo desde las tablas de hash en adelante... Pero hoy, fue diferente, agradezco a este buen hombre por ser uno de los pocos canales que explica de manera sencilla conceptos EXTREMADAMENTE tecnicos y practicos, basicamente la parte util de la universidad la pone a tu disposicion. Es increible... Un dia voy a viajar a España e invitare a este buen hombre a una buena cerveza, lo escuchare, y le contare como sus videos me ayudaron a conseguir la vida que tengo. Un abrazo enorme, crack!
Este video me hizo recordar mi primer año de Ing en Sistemas cuando cursaba Algoritmos y Estructuras de Datos, eh incluso me puse a investigar sobre los heaps cuya existencia desconocía, gracias.
Cuando se estudia sin que sea una obligación y se hace por gusto los resultados son increíbles. Deberías también hacerlo así también en tus clases, no creo que el profesor sea tan malo como para que no captes nada.
En hora buena Martín; soy de Venezuela y estudio en una Unidad Educativa Técnica; me a tocado hacer un cuadro comparativo, sobre las estructuras de datos , y tu explicación me a servido de maravilla para entender el tema y dar con las comparaciones. Muchas bendiciones y éxitos en el canal. +++
Yo en mi experiencia en estructuras de datos vi como funcionaba la programacion orientada a objetos, las pilas y colas, listas enlazadas y arboles, pero nunca aplicamos como funcionaba el heap, los grafos y tablas hash
Impecable, hace días aprobé la materia de estructura de datos de mi universidad y estudie todo lo que decís en este video, prácticamente tal cual, acabo de descubrir el canal
Muchas gracias Betta, tus explicaciones me llegan como caidas del cielo, al explicarlo tan sencillo en español haces que lo que aprendo en ingles se acelere mucho más.
Vídeo muy interesante, hoy mismo he realizado un examen en la universidad de Análisis y diseño de algoritmos y la importancia de estos conceptos es muy grande. Sigue así!!
Discrepo en un punto contigo, Martín. Para eliminar un elemento de una lista enlazada se toma tiempo a lo más O(n), pues hay que recorrer, en el peor caso, toda la lista hasta llegar al elemento anterior que se quiere eliminar y ahí hacer la operación de punteros. Tal vez se te pasó ese detalle u.u
Es una de las cosas que más dudé a la hora de exponerla en el vídeo. Según la bibliografía, el hecho de ELIMINAR el elemento de la lisa enlazada es O(1), no se cuenta la iteración que se debe realizar para llegar a ese elemento (ya que los accesos SI son O(n)). La diferencia con un array, es que en el array aunque el acceso sea O(1), el borrado si es O(n). Disculpas si se ha entendido mal! Voy a poner la aclaración en el comentario fijado. Gracias!
Como añadido al vídeo también sería interesante plantear que en principio, según la implementación de una lista enlazada (ya sea doble o simple), se puede optimizar el acceso a O(1) si al insertar los nodos la operación devuelve un puntero a la dirección de memoria donde se ha insertado, y este puntero se guarda en un vector de punteros a nodo de lista, por lo que al final para los accesos sí se podría conseguir la complejidad constante, con la pequeña ayuda de un vector de punteros. Muy buen vídeo, estos conceptos son muy complejos y me han encantado tus explicaciones. Gracias!
Pregunta: esta opcion no sería a costa de que las inserciones y las deletions puedan ser, en el worst case, O(n)? Tendrias que mantener el array actualizado cada vez que insertas o eliminas. Gracias a ti por tu comentario!
@@BettaTech Sí, con esta opción se resolverían únicamente casos de uso particulares de la estructura, de andar por casa para operaciones auxiliares o para facilitar en algunos momentos clave la complejidad. Para el caso de Optimización general lo mejor sería guardar los punteros en un mapa. Tipo: HashTableMap, en este caso, si al insertar los nodos de la lista también se guardan en el mapa, se podría resolver la complejidad en O(1) en promedio en accesos y búsquedas. También dependiendo si se utiliza encadenamiento separado o direccionamiento abierto. Un saludo Betta!
Muchas gracias, gran video, aunque en la parte donde se explica el direccionamiento de memoria de los arreglos, las direcciones hexadecimales se muestran como 0x00, 0x04, 0x08, 0x12 y 0x16. Las últimas deberían ser 0x0C y 0x10. Saludos!
gracias por tu trabajo, estoy estudiando ingenieria en sistemas aun no se programar como tal pero estos videos ayudan mucho. espero poder ser tan bueno como tu algun dia
BRUTAL!!! Gracias brother... Una clase COMPLETA en 12min (aclaratoria incluida). Ni sabía que tenía que ponerme a estudiar sobre esto. Como que hay demasiadas cosas que no sé todavía. jejejeje Un abrazo desde Venezuela. (y Suscrito!)
Super buen video, muy bien condensada la informacion. Una duda sobre la estructura de datos set, se podria decir que es un vector sin elementos repetidos o que otras caracteristicas tiene?
@@matias5924 Lo cierto es que lo dicho por gevurahs es muy cierto. Al fin y al cabo un lenguaje solo es éso, un lenguaje que tiene un propósito. Establecer una relación directa entre que lenguaje "es mejor o peor" sin siquiera ponernos en situación sobre la tarea para la que se va a usar dicho lenguaje, es harto imprudente y falto de miras.
Excelente video. Quedé con una duda. Si el min/max heap es binario completo, ¿El dibujo no debería tener sólo caminos entre padre y dos hijos? En vez de esa conexión extraña entre los nodos externos
desde la uma de informatica de malaga te seguimos toda una clase sube mas videos de programacion orientada a objetos, programar con c++ y estadisticas ( big data ) con r
A mi me lo explicaron así. De hecho, el docente tardó mas o menos lo mismo que en este vídeo y luego nos dijo: "Para la siguiente clase este será el proyecto que tienen que traerme hecho...".
A mí se me hace difícil, ya que el profe solo nos enseñó a crear pilas y colas tanto dinámicas como estáticas, el problema es que nos pide pasar datos de una pila dónde el usuario agrega los elementos y elimina esos datos eliminados s deben de pasar a una cola , y en la cola si el usuario lo elimina se debe hacer un historial pero estoy aprendiendo y no tengo ni idea de cómo resolver, estoy triste 😞
Aporto una estructura que me gustó mucho, aunque en la práctica solo una vez la implementé: btree Esta estructura es muy eficiente para hacer búsquedas en disco, ya que disminuye la lectura/escritura.
Tu info es buena, te lo agradezco, pero tienes una pasada de anuncios en todos los videos que con esas interrupciones constantes que al final quiero ver 5 0 6 videos y solo veo uno.
hola buen video. acabo de comenzar la carrera de programador asi q buen a estar atentos a tus videos. saludos desde argentina. post data nuevo suscriptor
Ojala pudiera ver mas estos videos, solo que me cuesta recordar lo que ya se, claro lo que me pasa es que no le pongo nombres, solo se como se hace sin necesidad de un nombre tecnico. Aunque algunos como tiempo de ejecucion y temas matematicos como maquina de turing si me se algunos nombres del tema. Pero bueno, a darle caña :v
En Java al menos, los Vectores, Arrays, etc, usualmente tienen un radio; si este se llena se dobla el buffer y se hace un volcado de pila; es decir si tienes un ArrayList por ejemplo de 100 y el radio es de un 50%, cuando llegues al elemento 50 esa inserción sera mas costosa ya el ArrayList va solicitar al sistema operativo un nuevo vector de 200 campos y copiar los 50 que ya tiene a el, descartando el vector previo de 100. En general, si se que voy a hacer una ronda de inserción larga utilizo LinkedList; una vez lista. La paso a una ArrayList inmutable para su posterior lectura.
Gran video pero ¿en la practica como saber cual usar? poddrias hacer un video con ejemplos prácticos indicando el porque si o por que no usar cierto caso, por favor
hola!! Me toco una entrevista Canadiense que me preguntaba sobre esto... y normalmente he trabajado con List generics collection en c# y dictionaries... nunca pensé que me preguntaran sobre la definición en si, y realmente no se en la Vida Real en que se utilicen aparte de los arrays.... o esas estructuras estan enbedidas en en lo que uno usa...
Pero es muy util si tienes una sería de datos estática, es decir que no le añades o le quitas datos, si no que siempre son los mismos. Ya que en ese casi puedes tener una función de hash perfecta
@@juniorusca602 si tienes un Array y quieres buscar un elemente teniendo su llave/key. Con una funcion hash perfecta puedes realizar esta operacion en tiempo constante en el peor de los casos
@@simonkaran thanks, pero me refería a como en una serie de datos estatica se puede contruir una función que asegure que los elementos se distribuyan de manera uniforme??
Si creamos un sistema lo mas probable es que usemos una base de datos.. Y por lo gral se ejecuta una consulta y los datos simplemente se muestran je. De hecho en la mayoria de los lenguages hay componentes que abstraen todo.
Buen video, pero el video de tablas de hash no entendí nada, pero vi otros canceles y hay uno que enseña muy bien ese concepto, gracias porque si no ubiera mencionado que no era importante no lo ubiera investigado, porfavor actualiza tu video de hash, graciss
Yo tengo una duda, a lo mejor es porque soy nuevo en todo esto y la pregunta puede sonar estúpida, pero que relación tienen las estructuras de datos con bases de datos??? Gracias de antemano.
pues tiene que ver en todo, un codigo bien estructurado es lo que hace un buen programador, pero una base de datos bien estructurada , organizada me permite hacer rapidadas , optimas y efectivas las consultas
Trie, treap, skip list. Son de nivel mas avanzado pero lamentablemente no todos enseñan estos 😅. Les sera util en los problemas nivel medio-avanzado en leetcode
Aclaración (Gracias a @Franco Seguel) sobre la eliminacion en O(1) de un nodo de una Linked List:
Según la bibliografía, el hecho de ELIMINAR el elemento de la lisa enlazada es O(1), no se cuenta la iteración que se debe realizar para llegar a ese elemento (ya que los accesos SI son O(n)).
La diferencia con un array, es que en el array aunque el acceso sea O(1), el borrado si es O(n).
Disculpad si se entiende mal!
EMAIL PARA COMPARTIR PROYECTOS A REVISAR EN DIRECTO! 💥
bettatechyt@gmail.com
VÍDEO HASH TABLES! 👇🏻👇🏻👇🏻👇🏻
ua-cam.com/video/LluB6jU-SwY/v-deo.html
VÍDEO GRAFOS! 👇🏻👇🏻👇🏻👇🏻
ua-cam.com/video/23pdz9VtIBo/v-deo.html
Eliminar un nodo de una Single Linked List (SLL) tiene un coste O(n) en el peor caso. 2 supuestos:
1) Teniendo el puntero al nodo a eliminar: necesitas buscar el nodo anterior (prev) para reconectar la lista una vez eliminado el nodo con el siguiente al eliminado (next).
2) Sin tener el puntero al nodo a eliminar: necesitar buscar el nodo a eliminar, en este caso puede ir guardando el anterior para evitar una nueva búsqueda una vez encontrado.
En ambos casos es O(n). En el primer caso podría ser O(1) si la lista fuera doblemente enlazada (DLL), al tener un puntero al prev.
Saludos.
@@RafaPaezCOM De hecho, teniendo el puntero al nodo eliminar, puedes copiar la información del siguiente nodo en el mismo, y cambiar el puntero next del nodo actual al puntero next del siguiente, algo así:
p.data = p.next.data
p.next = p.next.next
Con esto lograrías "eliminar" (aunque virtualmente) el nodo p sin tener que iterar.
Tenéis razón, al final depende de si contamos el hecho de iterar hacia el respectivo nodo en el coste.
Gracias por los comentarios!
@@BettaTech Sí, con ese truco de actualizar el contenido del nodo sí se podría, otra cosa es que se considere un eliminado válido, jeje. De nada, buen vídeo. Un saludo!
Edit: este truco no te valdría si el nodo a eliminar fuera el último, verdad?
@@RafaPaezCOM Es un caso especial. Tendrías que tener siempre un nodo fake al final que haga de señuelo, para en ese caso eliminar el ultimo elemento sea asi:
a -> b -> c -> dummy -> null
a -> b -> dummy -> dummy -> null
a -> b -> dummy -> null
Gracias a ti por verme y comentar! Me gusta que se hagan debates así en los comentarios 😊
HOLA QUE TAL
Me alegra darme cuenta que conocía perfectamente todo lo que explicabas y que tengo bien asentadas mis bases en DS y Algoritmos. El vídeo está perfecto para refrescar. Me suscribo.
Betta, estaría interesante que hagas un video hablando sobre estrategias de programación (Dinamica, Backtrackig, divide and conque, etc)
¡Cierto! Estaría chulo. Yo lo he cubierto en mi canal en inglés: ua-cam.com/video/rgGq6sELoZc/v-deo.html pero igual una versión en castellano al estilo BettaTech molaría :)
La primera vez que vi este video hace unos meses no entendi un carajo desde las tablas de hash en adelante... Pero hoy, fue diferente, agradezco a este buen hombre por ser uno de los pocos canales que explica de manera sencilla conceptos EXTREMADAMENTE tecnicos y practicos, basicamente la parte util de la universidad la pone a tu disposicion. Es increible... Un dia voy a viajar a España e invitare a este buen hombre a una buena cerveza, lo escuchare, y le contare como sus videos me ayudaron a conseguir la vida que tengo.
Un abrazo enorme, crack!
chi uwu
Este video me hizo recordar mi primer año de Ing en Sistemas cuando cursaba Algoritmos y Estructuras de Datos, eh incluso me puse a investigar sobre los heaps cuya existencia desconocía, gracias.
Me alegro que te haya servido :)
eso suena a UTN
1 año con un profesor que no me supo explicar espacio en memoria y este men me explico mi semestre de estructuras de datos en 12 minutos....
JAJAJA me encontre este video de la nada y es destino me dice que aun hay esperanza de salvar el semestre en dos semanas.
Cuando se estudia sin que sea una obligación y se hace por gusto los resultados son increíbles. Deberías también hacerlo así también en tus clases, no creo que el profesor sea tan malo como para que no captes nada.
no es eso, es que estabas ocupado volteando a ver a la ventana, jugando en la compu, viendo culos o cuchicheando con los amigos
@AndresDeveloper , eso mismo. Además que en UA-cam puedes retroceder y repetir el vídeo una y otra vez.
@@AndradeZ2 como lo sabes?
En hora buena Martín; soy de Venezuela y estudio en una Unidad Educativa Técnica; me a tocado hacer un cuadro comparativo, sobre las estructuras de datos , y tu explicación me a servido de maravilla para entender el tema y dar con las comparaciones. Muchas bendiciones y éxitos en el canal. +++
Yo en mi experiencia en estructuras de datos vi como funcionaba la programacion orientada a objetos, las pilas y colas, listas enlazadas y arboles, pero nunca aplicamos como funcionaba el heap, los grafos y tablas hash
Este canal vale oro! Ayer lo descubrí y ya estoy enganchado, saludos
Impecable, hace días aprobé la materia de estructura de datos de mi universidad y estudie todo lo que decís en este video, prácticamente tal cual, acabo de descubrir el canal
6:56 EJEMPLOS MUY DELICADOS PARA LA EXPLICACION, EL MOMENTO CULTURAL DEL VIDEO.
Tuve que leer 2 veces para corroborar.
También lei dos veces porque no lo creía jaja
Jajajja see
sientese señora
corroboro
Estas son las mejores explicaciones de big-o y estructuras de datos. Muy buen lenguaje utilizado y punto de vista.
Muchas gracias Betta, tus explicaciones me llegan como caidas del cielo, al explicarlo tan sencillo en español haces que lo que aprendo en ingles se acelere mucho más.
Vídeo muy interesante, hoy mismo he realizado un examen en la universidad de Análisis y diseño de algoritmos y la importancia de estos conceptos es muy grande. Sigue así!!
Muchas gracias! Espero que te haya ido genial el examen! 🤓
Discrepo en un punto contigo, Martín. Para eliminar un elemento de una lista enlazada se toma tiempo a lo más O(n), pues hay que recorrer, en el peor caso, toda la lista hasta llegar al elemento anterior que se quiere eliminar y ahí hacer la operación de punteros. Tal vez se te pasó ese detalle u.u
Es una de las cosas que más dudé a la hora de exponerla en el vídeo. Según la bibliografía, el hecho de ELIMINAR el elemento de la lisa enlazada es O(1), no se cuenta la iteración que se debe realizar para llegar a ese elemento (ya que los accesos SI son O(n)).
La diferencia con un array, es que en el array aunque el acceso sea O(1), el borrado si es O(n).
Disculpas si se ha entendido mal! Voy a poner la aclaración en el comentario fijado.
Gracias!
Como añadido al vídeo también sería interesante plantear que en principio, según la implementación de una lista enlazada (ya sea doble o simple), se puede optimizar el acceso a O(1) si al insertar los nodos la operación devuelve un puntero a la dirección de memoria donde se ha insertado, y este puntero se guarda en un vector de punteros a nodo de lista, por lo que al final para los accesos sí se podría conseguir la complejidad constante, con la pequeña ayuda de un vector de punteros.
Muy buen vídeo, estos conceptos son muy complejos y me han encantado tus explicaciones. Gracias!
Pregunta: esta opcion no sería a costa de que las inserciones y las deletions puedan ser, en el worst case, O(n)? Tendrias que mantener el array actualizado cada vez que insertas o eliminas.
Gracias a ti por tu comentario!
@@BettaTech Sí, con esta opción se resolverían únicamente casos de uso particulares de la estructura, de andar por casa para operaciones auxiliares o para facilitar en algunos momentos clave la complejidad. Para el caso de Optimización general lo mejor sería guardar los punteros en un mapa. Tipo: HashTableMap, en este caso, si al insertar los nodos de la lista también se guardan en el mapa, se podría resolver la complejidad en O(1) en promedio en accesos y búsquedas. También dependiendo si se utiliza encadenamiento separado o direccionamiento abierto.
Un saludo Betta!
Muchas gracias, gran video, aunque en la parte donde se explica el direccionamiento de memoria de los arreglos, las direcciones hexadecimales se muestran como 0x00, 0x04, 0x08, 0x12 y 0x16. Las últimas deberían ser 0x0C y 0x10. Saludos!
Toda la razón, me disculpo!
Minuto 3:15 el direccionamiento de memoria no sería 0x12, 0x16, sino 0x0C y 0x10. Si me equivoco, corregidme.
gracias por tu trabajo, estoy estudiando ingenieria en sistemas aun no se programar como tal pero estos videos ayudan mucho. espero poder ser tan bueno como tu algun dia
El que sabe sabe. Muchas gracias por explicarlo tan fácil. Sigue así.
Mi like y nuevo subscriptor.
¡Saludos desde Argentina!
Muy didáctico! Buen audio, este es el primer video que veo de este canal. Gracias, buen trabajo!
Gracias por compartir tu conocimiento, seria muy interesante un curso de estructura de datos.
aquí un fiber viéndose tus videos... me toca plantear la práctica de PRO2 y me estás ayudando un montón!
Excelente, al fin entendi sobre estructuras de datos!, suscrito!. muchas gracias !
BRUTAL!!!
Gracias brother... Una clase COMPLETA en 12min (aclaratoria incluida).
Ni sabía que tenía que ponerme a estudiar sobre esto. Como que hay demasiadas cosas que no sé todavía. jejejeje
Un abrazo desde Venezuela. (y Suscrito!)
Justo estoy a dos dias del parcial sobre estructura de datos, esta buenísimo el video
chaval si lo hicieras con ejemplos en código sería un plus. Pero aún así eres un Crack.. Muchas Bendiciones
las pilas son poderosas
6:52 ejemplo algo escatológico.
No se nada de informática y entendí todo. Genial explicado.
Wow un semestre de la universidad en solo 13 min 👍
Eso es imposible tío.
Tan exagerado mi papá.
Te emocionas fácil
Super buenos tus videos bro, es lo que vengo viendo en mi carrera ya en 7to semestre y es bonito entender un tema cuando alguien lo explica 👍🏾
Gracias por tu excelente explicación.
Excelente explicación, muy bueno por resaltar la importancia de las estructuras de datos... te felicito, sigue así con tus buenos vídeos
Super buen video, muy bien condensada la informacion. Una duda sobre la estructura de datos set, se podria decir que es un vector sin elementos repetidos o que otras caracteristicas tiene?
Jaksjajajaa “caca, culo, pedo, pis” Xd
PotatoE pipí
poto
Panocha
Alvaro Chachapoyas Presta atención, esa es una canción de 31 minutos un programa chileno para niños
Pensé que yo era el único inmaduro que ponía groserías en los ejemplos 🤣
excelente video para repasar estos conceptos, muy claro y concreto.. tienes un nuevo suscriptor..
Muchísimas gracias!!!!
6:57 *se le explota el torax y muere de tanta comedia*
XD
Este hombre es un Messi en informática. Explica sencillo y hace ver todo maravillosamente fácil. Qué talento.
En PHP un hashmap es lo que llamamos un array asociativo.
@Alexis Suele importar más el programador que el lenguaje.
@@gevurahs destruido en segundos
@@gevurahs ahora decilo sin llorar
@@matias5924 Lo cierto es que lo dicho por gevurahs es muy cierto. Al fin y al cabo un lenguaje solo es éso, un lenguaje que tiene un propósito. Establecer una relación directa entre que lenguaje "es mejor o peor" sin siquiera ponernos en situación sobre la tarea para la que se va a usar dicho lenguaje, es harto imprudente y falto de miras.
Jajajaja destruído en segundo x2
En las empresas grandes dicen que te evaluan mucho en algoritmos y ordenamiento
Estupendo video, solo me ha faltado que comentaras el mitico AVL.
Me mataron los 4 ejemplos de las tablas hash caca,pedo,culo,pis jajaja ja aja ja ja aj aja genial
Man eres kratos de la programación, amo tus vídeos OwO
Minuto 1:15 .Tengo una duda , yo antedí asindotica, pero creo que es asintótica ¿no?
Perdonen un poco mi autismo, solo es una duda porque no estoy seguro xc
@@joseantonioberrocalmontesi4764 xd
Excelente video. Quedé con una duda. Si el min/max heap es binario completo, ¿El dibujo no debería tener sólo caminos entre padre y dos hijos? En vez de esa conexión extraña entre los nodos externos
Excelente siempre es útil, tenerlo a mano... Saludos desde Argentina!!!
Excelente información, continúa así!! Saludos
Muy bien hecho! suscrito y muchísimas gracias!
Creo que este es el mejor canal de habla hispana sobre programación.
desde la uma de informatica de malaga te seguimos toda una clase sube mas videos de programacion orientada a objetos, programar con c++ y estadisticas ( big data ) con r
Yo di estructuras de datos en primero y segundo y ojalá me lo hubieran explicado tan fácil
jajaja, me alegro que te haya parecido interesante!
A mi me lo explicaron así. De hecho, el docente tardó mas o menos lo mismo que en este vídeo y luego nos dijo: "Para la siguiente clase este será el proyecto que tienen que traerme hecho...".
@@keyjayh x2
Gracias! Sirve para un pantallazo general!
me encanto el video aunque me hubiese agradado aun mas el que se alla agregado algun ejemplo practico de cuando se usa mas la estrucutra
Que excelente video. Tu forma de explicar tan sencilla es buenisima! Nuevo sub :3
Esto se ve en un semestre en mi carrera, lo peor es que Martín profundizo mas en los temas que mis profesores.
Excelente contenido!! Gracias por dedicar tu tiempo a enseñar.
Buen video, hash son como los diccionarios en python. Saludos
A mí se me hace difícil, ya que el profe solo nos enseñó a crear pilas y colas tanto dinámicas como estáticas, el problema es que nos pide pasar datos de una pila dónde el usuario agrega los elementos y elimina esos datos eliminados s deben de pasar a una cola , y en la cola si el usuario lo elimina se debe hacer un historial pero estoy aprendiendo y no tengo ni idea de cómo resolver, estoy triste 😞
Aporto una estructura que me gustó mucho, aunque en la práctica solo una vez la implementé: btree
Esta estructura es muy eficiente para hacer búsquedas en disco, ya que disminuye la lectura/escritura.
Noto como para BettaTech todo es fácil, podrías hacer un video de lo que realmente es dificil para tí? Sería interesante
Mira! El primer video en español que explica estos conceptos simplemente. A mí me tocó aprenderlos en inglés
Tu info es buena, te lo agradezco, pero tienes una pasada de anuncios en todos los videos que con esas interrupciones constantes que al final quiero ver 5 0 6 videos y solo veo uno.
hola buen video. acabo de comenzar la carrera de programador asi q buen a estar atentos a tus videos. saludos desde argentina. post data nuevo suscriptor
¿que opinas de los Sets o estructuras de datos dispersos que representan conjuntos homogeneos o heterogeneos con diferentes tipos de datos?
Muy bien explicado!!!!
Excelente vídeo, muy buen contenido y muy buena explicación. Un saludo! Sigue así
Buena informacion, Gracias!
Unos ejemplos hubiesen venido muy bien ;)
Ojala pudiera ver mas estos videos, solo que me cuesta recordar lo que ya se, claro lo que me pasa es que no le pongo nombres, solo se como se hace sin necesidad de un nombre tecnico.
Aunque algunos como tiempo de ejecucion y temas matematicos como maquina de turing si me se algunos nombres del tema. Pero bueno, a darle caña :v
buenas saludos que libros de estructura de datos puedes recomendar
Hola, cual libro me recomienda como una referencia
Interesante, conocí la mayoría de estructuras en la universidad pero nunca mencionaron ni conocía el hash
Excelente información!
Gracias por tan importante aporte.
Mil gracias 😊
amé todas estas estructuras en la universidad, menos las tablas de hash, esas las odiaba se me daban bien todas menos esas
En Java al menos, los Vectores, Arrays, etc, usualmente tienen un radio; si este se llena se dobla el buffer y se hace un volcado de pila; es decir si tienes un ArrayList por ejemplo de 100 y el radio es de un 50%, cuando llegues al elemento 50 esa inserción sera mas costosa ya el ArrayList va solicitar al sistema operativo un nuevo vector de 200 campos y copiar los 50 que ya tiene a el, descartando el vector previo de 100.
En general, si se que voy a hacer una ronda de inserción larga utilizo LinkedList; una vez lista. La paso a una ArrayList inmutable para su posterior lectura.
Excelente, muchas gracias
me cago en mi puta vida Kratos salvando el semestre
Excelente video Sultán Suleiman 👌
Muy buenas explicaciones.
Gran video pero ¿en la practica como saber cual usar? poddrias hacer un video con ejemplos prácticos indicando el porque si o por que no usar cierto caso, por favor
ua-cam.com/users/comovivirporfe vean pana
@@garciavazquezbogarjaziel6877 WTF No mande esas cosas
@@hectorkaizenf.v.7224 ve el canal si quieres saber como seguir a Cristo
Resumen: s
Vector/Array, tablas de hash, pilas, colas, arboles/grafos, heaps, listas enlazadas, estructura/uniones.
hola!! Me toco una entrevista Canadiense que me preguntaba sobre esto... y normalmente he trabajado con List generics collection en c# y dictionaries... nunca pensé que me preguntaran sobre la definición en si, y realmente no se en la Vida Real en que se utilicen aparte de los arrays.... o esas estructuras estan enbedidas en en lo que uno usa...
Vídeo super interesante!!!
Mil gracias!!!
Todos los videos de Betta Tech son interesantes bro. Esto sí es verdadero contenido.
Lo malo de un hash es que es dificil contruir una función que asegure que los elementos se distribuyan de manera uniforme.
Pero es muy util si tienes una sería de datos estática, es decir que no le añades o le quitas datos, si no que siempre son los mismos. Ya que en ese casi puedes tener una función de hash perfecta
@@simonkaran ejemplo?
@@juniorusca602 si tienes un Array y quieres buscar un elemente teniendo su llave/key. Con una funcion hash perfecta puedes realizar esta operacion en tiempo constante en el peor de los casos
@@simonkaran thanks, pero me refería a como en una serie de datos estatica se puede contruir una función que asegure que los elementos se distribuyan de manera uniforme??
Si creamos un sistema lo mas probable es que usemos una base de datos.. Y por lo gral se ejecuta una consulta y los datos simplemente se muestran je. De hecho en la mayoria de los lenguages hay componentes que abstraen todo.
y yo rompiéndome la cabeza por fin veo algo bueno gracias crack
Gracias Bro un buen video!!
Una tabla de hash en python sea así como un diccionario?
Donde puedo encontrar mas sobre estructuras de datos, encuentro cursos pero muy pocos.
Buen video, muchas gracias
Gracias a ti por comentar!
soy desarrollador web y la verdad solo uso arrays , los otros tipos de datos en que campo del desarrollo se usan???
Explicas super bien
Tus videos son muy buenos, poco de estos temas se trata por UA-cam, tienes cursos?
gran video, muy interesante y sobre todo entretenido :)
Buen video, me llegó por recomendación.
Buen video, pero el video de tablas de hash no entendí nada, pero vi otros canceles y hay uno que enseña muy bien ese concepto, gracias porque si no ubiera mencionado que no era importante no lo ubiera investigado, porfavor actualiza tu video de hash, graciss
Yo tengo una duda, a lo mejor es porque soy nuevo en todo esto y la pregunta puede sonar estúpida, pero que relación tienen las estructuras de datos con bases de datos??? Gracias de antemano.
pues tiene que ver en todo, un codigo bien estructurado es lo que hace un buen programador, pero una base de datos bien estructurada , organizada me permite hacer rapidadas , optimas y efectivas las consultas
Trie, treap, skip list. Son de nivel mas avanzado pero lamentablemente no todos enseñan estos 😅. Les sera util en los problemas nivel medio-avanzado en leetcode
Excelente video.
Tabla de hash, array asociativo?
V sauce..... Tech? Wow 🤣👍