SithDev
SithDev
  • 8
  • 443 103
Fibonacci Heaps or "How to invent an extremely clever data structure"
I want to tell you about a daunting, but truly fascinating data structure. At first sight, Fibonacci Heaps can seem intimidating. In this video, I'm going to show you all the necessary steps to invent a really clever data structure.
00:00 Introduction
00:50 Priority Queues and Binary Heaps
05:44 Fibonacci Heaps
08:24 Amortized Analysis
10:28 ExtractMin
16:54 DecreaseKey
22:02 3 Questions
28:16 Final Words
Animations created with Manim
Music: Goldberg Variations, J.S. Bach, Kimiko Ishizaka
Sources:
Cormen, Leiserson, Rivest, Stein: Introduction to Algorithms ‒ Third Edition (the chapter on Fibonacci Heaps is available for free on their website under "Material Removed from 3e")
Fredman, Tarjan: Fibonacci heaps and their uses in improved network optimization algorithms.
Vuillemin: A Data Structure for Manipulating Priority Queues
#SoME2
zhlédnutí: 406 530

Video

Sorting Values with Selection and Bubble sort
zhlédnutí 4,2KPřed rokem
The next videos will be about sorting. In this video we will learn about two simple sorting algorithms. We will try to figure out, how they work, and how efficient they are. 00:00 Introduction 01:07 Selection sort: idea and implementation 02:12 Selection sort: running time 04:23 Bubble sort: idea and implementation 05:35 Bubble sort: running time 06:03 Bubble sort: a simple optimization 07:18 R...
Order and Conquer: Binary Search
zhlédnutí 3,1KPřed 2 lety
Today, we will look at a first simple but very useful algorithm: Binary Search. We will understand how it works, why it is so fast and what things we can do with it. 00:00 Prologue: Can we find the maximum or duplicates any faster? 02:52 How does Binary Search work? 05:02 Implementation 06:28 Worst case running time: intuition 07:49 Running time analysis 11:15 Extension: Which element is the cl...
Big O Strikes Back
zhlédnutí 9KPřed 2 lety
In this video, we are trying to get a better intuition for what it means if some algorithm has particular time or space requirements in big O notation. In doing so, we will learn what time complexity means, look at typical running times of algorithms and consider if there might be alternative to big O notation. 00:00 What is time or space complexity? 01:11 Typical time/space complexities: 01:41...
Comparing Algorithms: Big O Notation
zhlédnutí 6KPřed 2 lety
In this video we look at to how to compare ressource requirements of algorithms, independently from hardware, implementation etc. In doing so we will come across a useful, but infamous tool from the field of algorithms: big O notation 00:00 Ressource requirements and the scalability of algorithms 02:18 Worst case, average case and best case analysis 04:06 How to compare ressource requirements, ...
All About Algorithms: Introduction
zhlédnutí 3KPřed 2 lety
In this video series, I will give you a visual introduction into the world of algorithms. Throughout the following videos, we will look at various different topics such as sorting algorithms, data structures or graph algorithms. I will also cover important, theoretical concepts like amortized analysis by looking at concrete examples. We don't just want to look at how certain algorithms work but...
Why RSA encryption actually works (no prior knowledge required)
zhlédnutí 3,9KPřed 2 lety
In this video, I am going to show you why RSA encryption works. I will prove the correctness of RSA from scratch, so no prior knowledge will be required. All results from number theory needed to understand why RSA works will be proven along the way. 00:00 1. Introduction, outline and disclaimer 02:08 2. Recap: How RSA works 02:12 2.1. Key generation 04:49 2.2. Why RSA is secure 05:56 2.3. Encry...

Komentáře

  • @diteron
    @diteron Před 3 hodinami

    Nice video, exactly what i was looking for. Everyone shows how it works, but not why it works

  • @nadie-qm8rq
    @nadie-qm8rq Před 2 dny

    this was amazing, and so helpful, thank you so much!

  • @simoncampos8099
    @simoncampos8099 Před 3 dny

    27:35 THIS MEANS FIBONACCI HEAPS ARE A JOJO'S REFERENCEEE!? 🏇🏇🏇

  • @hypermeero4782
    @hypermeero4782 Před 12 dny

    where is the code!

  • @kallehed6330
    @kallehed6330 Před měsícem

    great video, even better music choice

  • @GyroCannon
    @GyroCannon Před měsícem

    The main thing that came to mind when explaining why the FIbonacci Heap isn't more commonly used was entirely the amortized complexity thing - if you're running a server, life is great until your clients start doing a bunch of debt-accruing actions (inserts, decreases) and then calling extract min. Whoever called extract min won't be happy. It's great in a world where you're only crunching numbers and waiting for a single final result after a lot of heap operations (which is why people listed a lot of scientific applications), but most of the computation in a normal day is business logic, which serve lots of individual requests, and therefore much prefer consistency over raw speed.

  • @sunvaroya
    @sunvaroya Před 2 měsíci

    Babe wake up, the best data structure yt channel first reel just dropped

  • @chyrvonykastrychnik4819
    @chyrvonykastrychnik4819 Před 3 měsíci

    very beautiful thank you

  • @mikefochtman7164
    @mikefochtman7164 Před 3 měsíci

    Ever since I first learned of red-black trees, I've been interested in the various ways trees can be used/maintained to keep data organized. This is an interesting approach.

  • @surters
    @surters Před 3 měsíci

    Next Leonardo heaps?

  • @DeuxisWasTaken
    @DeuxisWasTaken Před 3 měsíci

    Great video, convinced me to sub.

  • @amanhasnoname1987
    @amanhasnoname1987 Před 3 měsíci

    Great video, thank you very much❤

  • @jkrigelman
    @jkrigelman Před 4 měsíci

    That was a rollercoaster. I couldn't repeat back any of that but that really helped to clear it up.

  • @hosseinsamaei5779
    @hosseinsamaei5779 Před 4 měsíci

    so sad that this channel has not posted anything since last year. such a high quality content, i wish i could see more from this channel. I hope the admin is fine

  • @sanketdatta9874
    @sanketdatta9874 Před 4 měsíci

    I was struggling to understand this concept and you saved me! Tons of thanks

  • @kevintyrrell7409
    @kevintyrrell7409 Před 4 měsíci

    This data structure is my absolute favorite, and has been for years. Second place to Red Black Trees or Circular arrays (vectors). I remember when I first saw the algorithm for how trees are merged, I exclaimed that it's absolutely genius how it works.

  • @ananmaysahu4563
    @ananmaysahu4563 Před 5 měsíci

    ooh, so fibonacci heaps are one of those glacial algorithms that I've always heard about, where n must be MASSIVE before it starts outperforming other algorithms with worse big O time complexity but better time complexity on average in all real life use cases.

  • @jaydendoshi5405
    @jaydendoshi5405 Před 5 měsíci

    Do I have permission to use your animations for my research?

  • @jan-rw2qx
    @jan-rw2qx Před 6 měsíci

    This is such an amazing Video, thank you very much!

  • @adityak935
    @adityak935 Před 6 měsíci

    Where are you? We need more videos 😢

  • @gara8142
    @gara8142 Před 6 měsíci

    Gorgeous video and amazing production and explanation. Congrats!

  • @yeahjason7226
    @yeahjason7226 Před 6 měsíci

    Hey! Just wanna tell you! You are way much better than our professor speaking 3hours but still got me confusing!!!!!!!!! You literally killed it !!!

  • @jaydharmadhikari4921
    @jaydharmadhikari4921 Před 6 měsíci

    This is an incredibly intuitive way to explain these concepts, great video!

  • @mystic3549
    @mystic3549 Před 6 měsíci

    gem :) or an entire fkin treasure ,,,,how can someone be soo clear and precise with their approach of explanation

  • @olafzijnbuis
    @olafzijnbuis Před 8 měsíci

    Very nice video! Good explanation and no over-the-top animations. But... Why the background music? I like Bach and have the Golberg Variations on CD (Glenn Gould) Why not start the video with a recommendation of background music and leave it to the viewer to start a CD or Spotify? My mind keeps switching between listening to the music and the narration. And is not that the background music makes it difficult to follow the narration.

  • @harshchauhan8175
    @harshchauhan8175 Před 10 měsíci

    Great explanation; I'll need to rewatch it again several times to really understand it. Superb Work 👍👍🙏🙏

  • @_soundwave_
    @_soundwave_ Před 10 měsíci

    Why does the animation look similar to 3b1b?

  • @_soundwave_
    @_soundwave_ Před 10 měsíci

    Now that is what i want from a teacher. Explaining the why instead of just going with the how and what.

  • @asmithgames5926
    @asmithgames5926 Před 11 měsíci

    Fascinating! I like the controlled laziness approach. What other cool but unusual fatties should I know about?

  • @PabloPazosGutierrez
    @PabloPazosGutierrez Před 11 měsíci

    There's a balance between performance and memory size, you can't optimize both. Faster algorithm is general means using more memory.

  • @StarkTrist
    @StarkTrist Před 11 měsíci

    nice video! Thanks for making it

  • @bartelsrobert
    @bartelsrobert Před 11 měsíci

    This is great!

  • @BenjaminOstrovsky
    @BenjaminOstrovsky Před 11 měsíci

    This is the best made, most clear video on the topic I have ever seen. Amazing!

  • @tholfikarmohammed887
    @tholfikarmohammed887 Před 11 měsíci

    08:26 On what rule we sort the nodes in those subtrees? for example we can put all nodes of the second tree in the first one in some kind of ascending order according to original node of the first tree, so if we can why we separate those nodes in another tree?!

  • @cmilkau
    @cmilkau Před 11 měsíci

    I like unbalanced binary trees where each node is the minimum of its right subtree (no constraints on the left subtree). Very easy to implement using list sorting, constant insert, constant delete, constant merge and amortized log min

  • @sandflow5635
    @sandflow5635 Před 11 měsíci

    I miss you, I wish you make more videos when you have the time , literally the most elegant algo channel (even with so low number of videos)

  • @tylerbakeman
    @tylerbakeman Před 11 měsíci

    Anyone else notice the prime number pattern?

  • @maskedvillainai
    @maskedvillainai Před 11 měsíci

    Um only issue I have is brain explosion wtf

  • @broccoloodle
    @broccoloodle Před rokem

    Phenomenal explanation

  • @xiao2634
    @xiao2634 Před rokem

    could you do a video on Fenwick Tree aka the BIT?

  • @chianlee1381
    @chianlee1381 Před rokem

    Best explanation about the fibonacci heap. It is incredible!

  • @SS-jq6mh
    @SS-jq6mh Před rokem

    Underrated

  • @sagargupta3144
    @sagargupta3144 Před rokem

    This is one of the most amazing video on algorithm

  • @__a8as
    @__a8as Před rokem

    Write operating system don't show these uninteresting videos !

  • @sanidhyas3s
    @sanidhyas3s Před rokem

    12:00 The Piano came in a little distracting here tbh.

  • @rfs8194
    @rfs8194 Před rokem

    I don't often use videos for learning about computer science, but I randomly got this recommended, and the animations were really helpful! Great work!

  • @SmartK8
    @SmartK8 Před rokem

    My favorite structure is PART (Parallelized Adaptive Radix Tree). Worst case for most operations is O(n).

  • @Famelhaut
    @Famelhaut Před rokem

    what the fuck?

  • @evgenyvarganov1892
    @evgenyvarganov1892 Před rokem

    Please write amortized time as O*(1), otherwise it looks confusing: it seems as though constant GetMin O(1) and amortized Insert O*(1) are similar, which is not the case.

  • @clemguitarechal
    @clemguitarechal Před rokem

    Thank you so much for this video. I've just spent a beautiful half hour, laid in my bed, my brain in constant and calm concentration.