Hash Tables and Hash Functions

Поделиться
HTML-код
  • Опубликовано: 4 мар 2017
  • This computer science video describes the fundamental principles of the hash table data structure which allows for very fast insertion and retrieval of data. It covers commonly used hash algorithms for numeric and alphanumeric keys and summarises the objectives of a good hash function. Collision resolution is described, including open addressing techniques such as linear and quadratic probing, and closed addressing techniques such as chaining with a linked list.

Комментарии • 1,5 тыс.

  • @ryanbutterfield5038
    @ryanbutterfield5038 6 лет назад +4102

    You deserve my data structures professor's salary

  • @ThePandaGuitar
    @ThePandaGuitar 6 лет назад +1227

    Your voice sounds like a National Geographic documentary. Amazing explanation! Subscribed.

    • @Wow55579
      @Wow55579 4 года назад +3

      This guy taught me ict when i was little trust me he sounds just like it

    • @joerj2460
      @joerj2460 4 года назад

      ThePandaGuitar he’s my computer science teacher

    • @Peter-wm7fj
      @Peter-wm7fj 3 года назад +2

      His British accent sounds so cool!

    • @rmapatipandey9217
      @rmapatipandey9217 3 года назад +1

      😂😂😂😂😂😂😂

    • @coob404
      @coob404 3 года назад +6

      he sounds a little bit like Tom Scott

  • @MartinBojmaliev
    @MartinBojmaliev 6 лет назад +788

    Before 14 minutes, I thought I will never understand Hash Tables.
    Good work and Thank you.

    • @ComputerScienceLessons
      @ComputerScienceLessons  6 лет назад +66

      They are actually quite simple in principal aren't they! Thanks for the comment.

    • @MartinBojmaliev
      @MartinBojmaliev 6 лет назад +14

      We got the reason here why they are used and how ... then it's very easy to use them in the right way !

    • @maybecrazy6934
      @maybecrazy6934 3 года назад

      same here, this video is so cool.

    • @stefanshapkarov184
      @stefanshapkarov184 Год назад +1

      Exactly sir, very good video indeed.

    • @atanasatanasov5119
      @atanasatanasov5119 Год назад +1

      He is a life saver isn't he?!

  • @joegarza8391
    @joegarza8391 3 года назад +269

    Years after, this video is still immensely valuable. This is what teaching is supposed to look like. Thank you for your amazing work!

    • @ComputerScienceLessons
      @ComputerScienceLessons  3 года назад +21

      Thank you. Crikey! that was uploaded nearly 5 years ago! :)KD

    • @ThunderAppeal
      @ThunderAppeal Год назад

      There are so many things wrong with this 'explanation' I'm not surprised that a half wit like you is impressed by this video.
      You defininetly have no idea what he is saying here. And he is talking utter nonsense.

    • @TheeSlickShady
      @TheeSlickShady Год назад

      This video
      So clear and easy to understand
      Thank you
      🏆🏆🏆

    • @ThunderAppeal
      @ThunderAppeal Год назад

      @@TheeSlickShady You understood nothing so you can stop pretending.

    • @TheeSlickShady
      @TheeSlickShady Год назад

      @@ThunderAppeal haha got me!

  • @nap163020
    @nap163020 4 месяца назад +13

    Why did I spend all that money on an engineering degree, when all I needed was this channel!!!

    • @ComputerScienceLessons
      @ComputerScienceLessons  4 месяца назад +1

      Thanks for the complement. University does have it's benefits :)KD

  • @mrwess1927
    @mrwess1927 5 лет назад +590

    This is what youtube is for. Just a clear explanation of interesting ideas. +1

    • @MisterWessells
      @MisterWessells 3 года назад

      CAKE BAKING ruclips.net/video/Ds9Jhu5E1sI/видео.html&ab_channel=MisterWessells

  • @hotlinkster123
    @hotlinkster123 3 года назад +99

    "indices are calculated from the data" thats literally all I needed to understand hash tables but surpirsingly I've never heard it once when people have mentioned them. Of course the bit on how to handle collisions was useful as well

    • @ComputerScienceLessons
      @ComputerScienceLessons  3 года назад +21

      Exactly - that is the essence of a hash table - it's that simple. A basic understanding of how physical RAM works explains why one memory location can can be accessed just as quickly as any other. :)KD

    • @saikumar2385
      @saikumar2385 2 года назад

      Same for me

    • @das6109
      @das6109 Год назад

      For me that part was intuitive, but I didn't understand how you would deal with that process creating multiple entries in the same index. This video was a big aha moment.

    • @Fandrir
      @Fandrir Год назад

      That is exactly what i thought. Exactly that one piece of information that i was missing. I have no idea why that was never made clear anywhere else i looked.

  • @tweedyburd007
    @tweedyburd007 Год назад +31

    You actually explain it as if we've never heard of the concept before! Something a lot of CS professors seem to not understand...

  • @abdullahakram4942
    @abdullahakram4942 5 лет назад +19

    you basically summarized 3 whole lectures of class into just 14 minutes. You're a life saver!

  • @utsabshrestha277
    @utsabshrestha277 5 лет назад +317

    Now this is a real education , so well described, you got the real tallent sir, really appreciating.
    You teaching approach can make anyone from zero to hero

  • @kola844
    @kola844 4 года назад +22

    Professors should just play videos like this at the start of class. Would improve student performance immensely.

  • @Lexoka
    @Lexoka 5 лет назад +95

    The video is very, very, very well made. That's a great deal of information in just under 14 minutes, and it is very clearly presented. You've more than earned a new subscriber.

  • @lucianojadur
    @lucianojadur 3 года назад +44

    I've never thought I could find such well presented and easy-to-follow explanaition about this topic in less tan 15 minutes. It's a gem among stones.

  • @kevin_machine_learning
    @kevin_machine_learning 5 лет назад +12

    Some Profs can, of course, explain what is hash table, but you just do that in about 10 mins!!!
    Your explanation is so clear and easy to understand, I think that is what students are looking for! Thank you Sir!

  • @kubamaruszczyk4043
    @kubamaruszczyk4043 5 лет назад +5

    The best explanation I have encountered so far. Thank you!

  • @deancj1
    @deancj1 2 года назад +12

    This is the clearest, most concise explanation of this structure I've come across. Thank you! A lot of people really muddy this subject up.

  • @charlesbaldo
    @charlesbaldo 4 года назад +9

    I just found this. As a professional with 30 year experience with data analysis you are spot on, well explained. I subscribed and set notifications on, hope to see plenty more from you.

  • @victorboateng5449
    @victorboateng5449 2 года назад +6

    This was posted 5 years ago but I can say it is still relevant today. Appreciate the wonderful explanation

  • @sujithav8871
    @sujithav8871 5 лет назад +13

    very good explanation. after a long time, i found a good lecture for hash table. thank you so much for your wonderful lecture

  • @arielspalter7425
    @arielspalter7425 4 года назад +7

    Fantastic tutorial. Just perfect pace, perfect intonation, perfect graphics and perfect depth to explain the topic to non-educated programmers like me. Subscribed!

  • @WaqasAhmadVlogs
    @WaqasAhmadVlogs 5 лет назад +8

    Holy shit! You made it sound like a piece of cake. I've been hearing about hash tables for so long and always thought it must be a rocket science until now. Hats off to you sir

  • @ryanbarry7670
    @ryanbarry7670 5 лет назад +6

    Better explanation than my tutor did in 3 hours! So cool, thanks for posting the video!

  • @jorgeramos9350
    @jorgeramos9350 5 лет назад +1

    I have reviewed several RUclips explanations about hash tables and hash functions, and none come close to this one. It was clear and to the point. Great job and thank you!

  • @AshishSingh-gb1yv
    @AshishSingh-gb1yv 5 лет назад +2

    This is neat, well structured and excellent video for any developer to understand HashTable and gives a fair idea about HashMap concepts.
    Absolutely fabulous work done !!!

  • @tinojaa6749
    @tinojaa6749 2 года назад +15

    In a perfect world every teacher would be as clear as this guy :)

  • @lanat4260
    @lanat4260 5 лет назад +4

    I spent hours trying to understand this for my final exam tomorrow to no avail. Until i came across your video! Thank you so much for this :)

  • @patrickd791
    @patrickd791 4 года назад +2

    Really eloquent description of the subject. This is the first time I feel like I actually know something about Hash Tables. Thank you.

  • @navidmohammadzadeh2141
    @navidmohammadzadeh2141 5 лет назад +1

    I liked what you have prepared to introduce what is clearly hashing algorithms is. Of course, I would watch it again and again.

  • @neeyatiajmera869
    @neeyatiajmera869 4 года назад +20

    By far one the best explanation videos I've ever watched. The most useful 14 minutes of my life. Thanks!

  • @jannesvanquaillie9151
    @jannesvanquaillie9151 5 лет назад +3

    This is a SUPER good video.
    I've always wondered how hash table worked.
    But I didn't think it was this genius.

  • @felizdeannemayao4811
    @felizdeannemayao4811 4 года назад +2

    I love how excited, eccentric and passionate he sounds. Sounds very motivating for me!

  • @CarlNeuDitters
    @CarlNeuDitters 4 года назад +1

    Fantastic. Not only did you lay out the problem well, and explain how hash tables work but you even set a good example of what any kind of teaching should be.

  • @keeperkell13
    @keeperkell13 5 лет назад +6

    I don't normally comment on videos but this was the most helpful explanation of what a hash table is and how to use one. I have been looking for good articles and videos for a couple of hours before I found this video! So thank you!

  • @monishagowda8928
    @monishagowda8928 5 лет назад +7

    And that's how you teach!!! Thank you so much for such a clear explanation 😊

  • @insofcury
    @insofcury 4 года назад +3

    This just cleared every possible doubt that I could possibly have related to hash tables.

  • @ironbob11
    @ironbob11 3 года назад +1

    Described way better than all the other videos I've seen on this topic. Thank you

  • @polomame
    @polomame 5 лет назад +3

    I don't normally like videos on youtube, but you helped me understand this concept.

  • @LandNfan
    @LandNfan 5 лет назад +4

    Excellent video! I spent the last half of my 34 years in IT working with the Advanced Pick and Unidata databases which depend heavily upon hashed access. The key to efficiency is selecting the right modulus when creating your file. Too small and you get too many collisions, too large and you waste space. The multivalue database concept goes back to the mid-60’s, but it is still hard to beat for efficiency and ease of use.

  • @kuyabongekamayeza1751
    @kuyabongekamayeza1751 2 месяца назад +1

    I come across this page today. A game changer, I tell you!!!!!! Thank you sooo much.

  • @Shalaby2002
    @Shalaby2002 Год назад +5

    I just stumbled upon your video and I must say, you did an amazing job! Your clear and concise explanation helped me understand the concept better than any textbook or lecture ever could. Your use of examples and visual aids made the topic so much easier to grasp.

  • @MdMainuddinJU
    @MdMainuddinJU 5 лет назад +18

    This is one of the best lectures I have ever found to understand something clearly and precisely, yet in a reasonably short time.

  • @AhmetHDonmez
    @AhmetHDonmez 3 года назад +7

    Just incredible, thank you for your time and efforts for these incredible videos. Your teaching abilities are through the roof!

  • @kardelenbuz450
    @kardelenbuz450 4 года назад +2

    ı've been listening for a whole year from my professor and couldnt understand any of these... now even i cant believe that i got the point . thank you so much

  • @yukeyang5735
    @yukeyang5735 5 лет назад +2

    Very hard-core stuff, yet very easy to digest. You are a genius.

  • @daniloradulovic7646
    @daniloradulovic7646 5 лет назад +3

    Basically i listened 2min of your video and i understood everything good job man!

  • @safedupkid
    @safedupkid 5 лет назад +4

    Excellent explanation. Appreciated the clarity and succinctness

  • @TaylorColpitts
    @TaylorColpitts 5 лет назад +1

    Great breakdown and very well illustrated - it's been a while since I've used these. Thanks!

  • @ashutoshmane3513
    @ashutoshmane3513 5 лет назад

    it was one of the easiest explanation i had witnessed to something, without letting go the jargons. great subscribed

  • @casanovavzla
    @casanovavzla 5 лет назад +3

    You just got me like 1:30 hour of sleeping instead of having to search the entire internet.... Thanks a lot! Suscribed!

  • @cogs11
    @cogs11 4 года назад +4

    This was a great explanation ! I was even imaging how this could be coded.

  • @calciumcitrate1293
    @calciumcitrate1293 2 года назад

    Have an organized and well-structured presentation helps students a bunch when introducing such new concepts. Instead, my dear professor just freestyled and droned forever during class. What a difference you made sir. Thank you

  • @tigerslashii7097
    @tigerslashii7097 5 лет назад +2

    This was incredibly straightforward and easy to follow.

  • @herokim5113
    @herokim5113 4 года назад +3

    You are the best voice actor in CS. You deserves it!

  • @kazimafzal
    @kazimafzal 5 лет назад +3

    Loved the concise yet thorough explanation! More vids like this one please! Subbed!

  • @chasingthestereotype6420
    @chasingthestereotype6420 4 года назад +2

    thank god you decided to record youtube videos. You just destroyed my fear of hashing in under 15 minutes, you have my eternal gratitude

  • @fritsgerms3565
    @fritsgerms3565 3 года назад

    nicely done. I have decades of experience with hashing and it's nuanced properties that very much depends on table sizes, types of keys, types of implementatios, the key values themselves, different hardware, etc, and I would not have thought that in 14min an explanation could be so comprehensive with some insights given. well done.

  • @jenjen3
    @jenjen3 5 лет назад +4

    Great video, I'm totally new to this and actually understand hashmaps now. Thank you so much!

  • @rebeccataylor8188
    @rebeccataylor8188 4 года назад +3

    Never heard someone so hyped about hash tables, but I love it. Thanks for the great explanation!

  • @kalanaherath3076
    @kalanaherath3076 5 лет назад +2

    I absolutely LOVE your channel! it really helps me with my A level ICT studies! Thank you! I am eternally grateful!

  • @plekkchand
    @plekkchand 4 года назад +1

    Proper explanations, logically and clearly expounded, in comprehensible English. This sort of material is by no means easy to find.

  • @VolkWasHere
    @VolkWasHere 5 лет назад +33

    Give this man a Medal, thank you!

  • @arlene5990
    @arlene5990 5 лет назад +8

    omg i love your voice and your explanation it’s really clear, thank you!!!

  • @TonyKingOfTheOzone
    @TonyKingOfTheOzone 4 месяца назад +1

    CS 260 student here and Chat GPT recommended this video. I can see why, this was so helpful as someone who literally has never coded a hash table into a project yet this video is exciting to see how I can store data and access it. Now I cant wait to start coding this into a project!

    • @ComputerScienceLessons
      @ComputerScienceLessons  4 месяца назад +1

      Delighted to help. It's interesting to hear I have the attention of chatbots. :)KD

  • @DJNecktron
    @DJNecktron 4 года назад +2

    Thank you good sir for this splendid and easily understandable video! My hopes for the "Data structures and algorithms" exam are looking way brighter now!

  • @stephan553
    @stephan553 4 года назад +6

    One _very important_ case against open addressing is that any case where the key is not contained in the hash map can only be resolved in O(n) time, that is a time linear to the length of the whole map. Closed addressing can resolve this by simply traversing the much shorter list at the respective key.
    No matter if databases, caches or many other use cases, looking up a missing key is a very common situation.

    • @your-mom-irl
      @your-mom-irl Год назад +1

      That shouldn't matter much if the load factor is kept low and the hash function has a good distribution, but yeah it is a possibility lol
      A uniform distribution with 50% load factor will give you an average of just 1 miss

  • @Democracyphobia
    @Democracyphobia 3 года назад +3

    ok this was brilliant . we need more teachers like you . understanding whats going rather than just learning by heart .

  • @mubafaw
    @mubafaw 5 месяцев назад +1

    Absolute legend. The best introductory video I have seen so far on Hash Tables and Hash functions. Thank you, Thank you, Thank you 😊😊😊

  • @usamamushtaq703
    @usamamushtaq703 2 года назад

    i have been searching on youtube for almost an hour but couldnt find an appropriate video of explanation of hash table until i find this video .....beautifull explanation

  • @sushruttabakade6088
    @sushruttabakade6088 5 лет назад +5

    Tens of books couldn't teach me what you just did in a couple of minutes. you are fantastic!!!

  • @reca117
    @reca117 7 лет назад +20

    Your videos are amazing quality. Keep it up

  • @zhechen4814
    @zhechen4814 5 лет назад +1

    Demonstrated the concepts incredibly well!

  • @m.l.c.m.madhawa4649
    @m.l.c.m.madhawa4649 Год назад

    This is the clearest and most concise explanation I've come across

  • @ChrisBreemer
    @ChrisBreemer 5 лет назад +3

    Excellent, crystal clear, perfectly animated and optimally paced. Many thanks ! What I missed were some simple ideas to improve the hash function to reduce collisions. I could think of factoring in the position of a letter, so that 'Leo' doesn't collide with 'Loe'. Maybe also the length of the string though that's of no use in this particular example. Also it would be great to have some examples of how to choose between closed and open (and the different variants of open).

  • @ron0studios
    @ron0studios 3 года назад +4

    this is the most beautiful explanation of hashing I've ever come across. Well done! All the other vids take a cryptic description and focus more on big ideas like blockchaining and encryption/security. Having a nice bit-sized chunk really helps out! Thanks!

    • @ComputerScienceLessons
      @ComputerScienceLessons  3 года назад +1

      Lovely comment. Thanks for making me smile :)KD

    • @pranavnyavanandi9710
      @pranavnyavanandi9710 2 года назад

      I would like it if videos like this transitioned to such bigger concepts after giving a good foundational understanding like this. Would be real helpful, especially for beginners looking to advance.

  • @Brodkaproduction
    @Brodkaproduction Месяц назад

    Your explanation of collisions and their solutions (5:06) is the most comprehensive I've come across while brushing up on my fundamentals during my job search. I'm elated I stumbled across your video. Thank you so much for this.

  • @geybriyel2416
    @geybriyel2416 Год назад +1

    finally, a clear and great visualization of the hash table. Thank you so much, this has been really helpful for me to understand the principle.

  • @BorlandC452
    @BorlandC452 5 лет назад +3

    I've been watching quite a few hash table videos lately. This is the best one I've come across.

  • @katariegels258
    @katariegels258 3 года назад +6

    You already got tons of love in the comments, but you deserve one more. Very well explained with simple, yet very useful, animations. Thank you very much for the great work! :-)

  • @mazedesign9804
    @mazedesign9804 5 лет назад

    I applaud you, honestly the best video on computer science anywhere period. GREAT WORK! didn't take a single note

  • @ganeshs2470
    @ganeshs2470 Год назад +2

    I seriously appreciate the amount of clarity you have before delving in and making the concept much more easier and understandable. Seriously appreciate your explanation and presentation. Keep up and continue the good work.

  • @sramaiah110784
    @sramaiah110784 6 лет назад +8

    Very neat explanation! Thanks for the detailed picturization of how things are stored internally.

  • @TheInertBoyz
    @TheInertBoyz 6 лет назад +7

    That's perfect explaination....

  • @conermos
    @conermos 3 года назад +1

    A big thank you. 2 hours of lectures couldn't explain what you did in 1 RUclips video.

  • @neonoply2205
    @neonoply2205 6 лет назад +1

    A wonderful explanation which resolves all my questions.

  • @GunelMammadova93
    @GunelMammadova93 5 лет назад +5

    The best explanation of hash tables/functions! Thank you!

  • @AdiPrimandaGinting
    @AdiPrimandaGinting 6 лет назад +39

    You have a fine English accent, Mate. It helps my brain gear run smooth

    • @Maadhawk
      @Maadhawk 5 лет назад +5

      He sounds like the guy who presents "Explaining Computers", and if he is the same guy, wouldn't surprise me one bit given the topic of both channels.

    • @MisterWessells
      @MisterWessells 3 года назад

      CAKE BAKING ruclips.net/video/Ds9Jhu5E1sI/видео.html&ab_channel=MisterWessells

  • @whatdudeno6116
    @whatdudeno6116 3 года назад +1

    This may be the most well paced, organized, and succinct instructional video I've watched, thank you!

  • @mishalubich9366
    @mishalubich9366 4 года назад +2

    Best Hash Table tutorial on RUclips - it's simple and relatable. Thank you.

  • @mushusax
    @mushusax 6 лет назад +198

    The examples he uses are real. Ex:
    Bea = Beatrice Tinsley; created galaxy models
    Ada Lovelace = Ada Lovelace; the first programmer

    • @ComputerScienceLessons
      @ComputerScienceLessons  6 лет назад +184

      Mostly...
      Beatrice Tinsley (Astronomer)
      Tim Berners Lee (Computer Scientist of WWW fame)
      Leo Adelman (Mathematician of RSA fame)
      Jan Łukasiewicz (Logician of reverse Polish notation fame)
      Lou Kauffman (Mathematician - of polynomial fame)
      Max Newman (Mathematician and code breaker)
      Ada Lovelace(Computer Scientist)
      Ted Nelson (Computer Scientist and Philosopher)
      Sam (Sam Malone - the guy in Cheers)
      Mia (the space station)
      Zoe (Zoe Saldana - Guardians of the Galaxy, Star Trek)

    • @Afdch
      @Afdch 5 лет назад +4

      @@ComputerScienceLessons Except the space station is MIR, not MIA. Just saying.

    • @ComputerScienceLessons
      @ComputerScienceLessons  5 лет назад +22

      мое орфографическое отстой

    • @SJ23982398
      @SJ23982398 5 лет назад +7

      Yeah and Tod is real too. Tod Einstein. Famous for drinking a relatively large amount of beer in a very short amount of time.

    • @charlesbaldo
      @charlesbaldo 4 года назад

      M Detlef she died. A life of debauchery is often short.

  • @intrepidsouls
    @intrepidsouls 4 года назад +4

    That is what we call a man born to be a teacher.

  • @doomedoptimism1015
    @doomedoptimism1015 Год назад +2

    Best explanation I have heard yet to explain hash tables, bravo. To me when I think of what is an elegant solution to a complicated problem, it doesn't get much better than this kind of thing.

    • @ComputerScienceLessons
      @ComputerScienceLessons  Год назад

      Thank you so much. I do agree, some of these standard data structures and algorithms are pure genius :)KD

  • @osamaa.h.altameemi5592
    @osamaa.h.altameemi5592 4 года назад +1

    Best explanation so far and the animations are so on point. thank you for making data structures enjoyable again :)

  • @ashrocks8443
    @ashrocks8443 3 года назад +3

    You are an absolutely amazing teacher sir,you have my respect 🙏

  • @Wlodixpro
    @Wlodixpro 4 года назад +10

    Jesus I understood everything and this vid containes more than we have learned at my uni haha. Thanks a lot!

  • @FidelSantana87
    @FidelSantana87 6 лет назад

    The best professor I've ever listen in my entire life!!!!

  • @cloudproblemssolved
    @cloudproblemssolved 4 месяца назад

    It makes so much sense, you translate each letter to ascii value before adding em up and getting the remainder of the letters’ values summed up divided by total number of squares (e.g. 11)

  • @holdenmcgroin8917
    @holdenmcgroin8917 4 года назад +3

    I had a light bulb moment after only 3 minutes into this lecture... amazing! Thanks!

  • @user-jf4cb3nn6p
    @user-jf4cb3nn6p 5 лет назад +4

    Thank you so much!! i thought i'd never understand this!

  • @charbelalam2648
    @charbelalam2648 2 года назад +1

    You literally are the only person to ever make me understand this mess. Thank you so so much!

  • @loosabway3400
    @loosabway3400 6 лет назад +1

    Bloody excellent - great pace, great clarity and a lot of time spent making sure your data illustrates the point you're making without hitch. This kicks the damn good Craig'n'Dave hashing video into the weeds. You're a great teacher. Well done!