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! 👇🏻👇🏻👇🏻👇🏻 ruclips.net/video/LluB6jU-SwY/видео.html VÍDEO GRAFOS! 👇🏻👇🏻👇🏻👇🏻 ruclips.net/video/23pdz9VtIBo/видео.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 😊
¡Cierto! Estaría chulo. Yo lo he cubierto en mi canal en inglés: ruclips.net/video/rgGq6sELoZc/видео.html pero igual una versión en castellano al estilo BettaTech molaría :)
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.
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.
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 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.
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!
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 😞
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!
@@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.
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!
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. +++
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...".
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?
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í!!
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??
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
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
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!)
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
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 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.
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
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
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.
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.
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
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! 👇🏻👇🏻👇🏻👇🏻
ruclips.net/video/LluB6jU-SwY/видео.html
VÍDEO GRAFOS! 👇🏻👇🏻👇🏻👇🏻
ruclips.net/video/23pdz9VtIBo/видео.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
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: ruclips.net/video/rgGq6sELoZc/видео.html pero igual una versión en castellano al estilo BettaTech molaría :)
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 RUclips puedes retroceder y repetir el vídeo una y otra vez.
@@AndradeZ2 como lo sabes?
Una tabla de hash en python sea así como un diccionario?
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
Buen video, hash son como los diccionarios en python. Saludos
V sauce..... Tech? Wow 🤣👍
excelente =)
6:55 yo comiendo bien tranquilo
el video bien, el audio no tanto. -Paulo Coelho
muy bueno! sigue asi!
necesitas un mejor mic
Un Arbol Merkle es elutilizado por la Blockchain. jejeje
Like++
C++
Hey VSauce!!!
6:53 Vaya ejemplitos... Es muy buen contenido como para que se manche por estas cosas poco profesionales
Lenguaje C no es de bajo nivel
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.
6:57 *se le explota el torax y muere de tanta comedia*
XD
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 🤣
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
No entiendo, dices que los heaps son arboles binarios completos y en los ejemplos pones arboles terciarios
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
Solo vengo a decir que no entendí absolutamente nada.
Me mataron los 4 ejemplos de las tablas hash caca,pedo,culo,pis jajaja ja aja ja ja aj aja genial
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.
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 😞
El que sabe sabe. Muchas gracias por explicarlo tan fácil. Sigue así.
Mi like y nuevo subscriptor.
¡Saludos desde Argentina!
me cago en mi puta vida Kratos salvando el semestre
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 canal vale oro! Ayer lo descubrí y ya estoy enganchado, saludos
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
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!
chaval si lo hicieras con ejemplos en código sería un plus. Pero aún así eres un Crack.. Muchas Bendiciones
Te sale la frase de Albert Einstein "Si no lo puedes explicar de forma sencilla es que no lo has entendido bien"
Wow un semestre de la universidad en solo 13 min 👍
Eso es imposible tío.
Tan exagerado mi papá.
Te emocionas fácil
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. +++
Excelente, al fin entendi sobre estructuras de datos!, suscrito!. muchas gracias !
kk, qlo, pdo y pis jajajajaja
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
Muy didáctico! Buen audio, este es el primer video que veo de este canal. Gracias, buen trabajo!
6:52 ejemplo algo escatológico.
bueno tio, que hay mas ejemplos que esos de tipo gástrico 🤣🤣🤣
6:54 le pongo esos nombres a las variables cuando estoy estresado xd
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?
Gracias por compartir tu conocimiento, seria muy interesante un curso de estructura de datos.
like si cantaste la rola de los punkitos al ver los datos en la función de hash ... jajajajaja (picoootooooon)
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
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! 🤓
me gusta el video, pero el sonido de fondo estorpese la naraccion y no te entiendo bien, sera que tengo problemas de atencion.
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??
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
Esto se ve en un semestre en mi carrera, lo peor es que Martín profundizo mas en los temas que mis profesores.
Si son 6 si cuentas desde el 0 como en programación 🤓🤓
denme un resumen, lo ocupo para una tarea. gracias
😊😊😊😊
Gracias por tu excelente explicación.
soy desarrollador web y la verdad solo uso arrays , los otros tipos de datos en que campo del desarrollo se usan???
Necesito que este video se haga de nuevo por la pésima calidad de audio
11:06 el profesor diciendo esto cuando ve que necesitas 1 punto para pasar la materia
No voy a mentir, he entrado al video porque pensé que eras. Vsauce
Estas son las mejores explicaciones de big-o y estructuras de datos. Muy buen lenguaje utilizado y punto de vista.
Joder mucha publicidad no deja concentrar para entender
Ta chido el video, pero creo que le falta su respectivo remake el audio se escucha algo mal u.u
las pilas son poderosas
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
Gracias! Sirve para un pantallazo general!
6:52 esas Claves me sonaron a una canción de LOS CHABELOS 🤣
x2 XDXD
La tabla de hash nunca la escuche ni preguntaron en una entrevista
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!)
El hijo de Kratos aprendió a programar
Chale no se de que habla pero ya se que no estudiar
Esa referencia aLos Punkitos LOL
Hola, cual libro me recomienda como una referencia
caca, culo, pedo, pis como llaves en el hash 🤣
En las empresas grandes dicen que te evaluan mucho en algoritmos y ordenamiento
1:29 oye sin albures por favor XD
Buena informacion, Gracias!
Unos ejemplos hubiesen venido muy bien ;)
jajjajaja culo caca... solte la carcajada y le di like inmediatamente cuando lo vi jajajaja
Excelente explicación, muy bueno por resaltar la importancia de las estructuras de datos... te felicito, sigue así con tus buenos vídeos
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:52 lenguaje muy tecnico
6:56 datos muy realistas, y poco sociables.
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 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.
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
Arboles binarios 🙌
minuto 1:30
El tamaño de ESTA
Resumen: s
Vector/Array, tablas de hash, pilas, colas, arboles/grafos, heaps, listas enlazadas, estructura/uniones.
6:52 epico jajajajaj
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
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.
y yo rompiéndome la cabeza por fin veo algo bueno gracias crack
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 información, continúa así!! Saludos
CLICKBAIT A TOPE! No he visto el vídeo pero me gusta como has aprendido SEO para hacerte grande. Recuerdo que tu primer vídeo era un poco malo
excelente video para repasar estos conceptos, muy claro y concreto.. tienes un nuevo suscriptor..
Muchísimas gracias!!!!
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
Vídeo super interesante!!!
Mil gracias!!!
Todos los videos de Betta Tech son interesantes bro. Esto sí es verdadero contenido.
Estupendo video, solo me ha faltado que comentaras el mitico AVL.
HOLA