/adsg/ - Algorithms + Data Structures General

git gud edition

en.wikipedia.org/wiki/Chord_(peer-to-peer)

en.wikipedia.org/wiki/Raft_(computer_science)

en.wikipedia.org/wiki/Merkle_tree

en.wikipedia.org/wiki/Trie

en.wikipedia.org/wiki/Binary_decision_diagram

Other urls found in this thread:

en.wikipedia.org/wiki/Computational_complexity_theory
jayconrod.com/tags/v8
youtube.com/watch?v=BRNxM8szTPA
en.wikipedia.org/wiki/Chord_(peer-to-peer)
en.wikipedia.org/wiki/Raft_(computer_science)
en.wikipedia.org/wiki/Merkle_tree
en.wikipedia.org/wiki/Trie
en.wikipedia.org/wiki/Binary_decision_diagram
twitter.com/SFWRedditGifs

just.bumpMyShitUp();

interdasting

Nice thread. How should I start if I know barely nothing?

...

I should really go back and seriously learn algorithms and data structures. I have so I should read through it and try implementing the various algorithms.

I try it. Thanks.

I always found any edition of Sedgewick's Algorithms in C more readable and practical. CLRS is nice but AiC combined with the book in OP is probably a better choice if you're not delving into CS research imo.

Take your time and work your way through this book. You will seriously know some shit by the time you are finished.

Got any recommendations for someone who is interested in computation on an abstract level? Maybe some philosophical angle on CS. I've read Turing and some other pioneers but nothing giving contemporary perspective on subsequent developments. Sorry if it doesn't fit your thread but the thought of reading about principles behind good algorithm design appeals to me more than learning good algorithms, if that makes sense.

Is there any math I should brush up on before delving through this?

en.wikipedia.org/wiki/Computational_complexity_theory

and stats if you want to cover the probability-based stuff, but maybe you can learn the stats through the book? Can't remember the content in that section, it's been a long while

Are any of these algorithms useful in scientific computing?

maybe this won't help much but I've really enjoyed learning the math behind these algorithms. Knowing how they work is nice but understanding the mathematical background was enlightening. I imagine this might help your philosphical angle on CS

I can't believe some people learn thinks like this for fun, I have algorithms and data structures in my uni and I fucking hate it, I wish I was like you guys.

Yes I love math and formal logic, I'm trying to slowly approach computing from that angle I guess.

I can't think of efficient ways to solve advanced project euler type problems to save my own life, but I'm much better at designing programs, wat do?

Get out of Sup Forums then. And take your graphics card threads with you.

Are Javascript objects just Merkle trees?

1st for push relabel

not quite. in v8 theres different kinds of representation depending on what the object holds. sometimes a more efficiently indexable data structure is used for if the js isnt doing anything weird and janky thats outside of what the jit is expecting

more resources if youre interested:
jayconrod.com/tags/v8
youtube.com/watch?v=BRNxM8szTPA

Hash maps > all

oh also the way v8 does this is fairly similar with the same methods being used in other modern high performance js engiens

I just put down Sedgewicks and switched to this one, a LOT less BS, a lot more concise.

This is another good one. Some folks think it is better than CLRS for a beginner.

>en.wikipedia.org/wiki/Chord_(peer-to-peer)
Should've linked Kademalia instead.
>en.wikipedia.org/wiki/Raft_(computer_science)
Non-economic consensus algorithms are Pajeet-tier
>en.wikipedia.org/wiki/Merkle_tree
Efficient secure record keeping 101
>en.wikipedia.org/wiki/Trie
Best used for human filing systems. I have yet to see any practical use of them for computer managed data that wouldn't be better served by a different data structure.
>en.wikipedia.org/wiki/Binary_decision_diagram
AKA: nested if statements for tryhards