Data Structures and Algorithms
- An Extensive Benchmark of C and C++ Hash Tablesjacksonallan.github.io An Extensive Benchmark of C and C++ Hash Tables
A comparative, extendible benchmarking suite for C and C++ hash-table libraries.
- What are the best resources for learning Data Structures and Algorithms the right way?
I'm currently finishing a CS degree, so I've had some DSA courses. Nonetheless, I don't feel I have good enough theoretical foundations or proficiency when putting them into practice.
My main goal would be to prepare myself for coding interviews, but I'd also want to make sure I understand well theory.
What are the best resources for learning Data Structures and Algorithms theoretical with good theoretical background that also allows you to succeed in coding interviews?
Some resources I've found, but I haven't followed myself:
Free resources
- Algorithms, Part I by Princeton University (Coursera) taught in Java
- 6.006 Introduction to Algorithms / Electrical Engineering and Computer Science (MIT OpenCourseWare) taught in Python
- FreeCodeCamp article linking to other resources: Learn Data Structures and Algorithms – Introduction and Learning Resources (FreeCodeCamp)
- Learn About Algorithms and Data Structures (FreeCodeCamp) taught in Python
Paid resources
- Computer Scientists Invent an Efficient New Way to Countwww.quantamagazine.org Computer Scientists Invent an Efficient New Way to Count | Quanta Magazine
By making use of randomness, a team has created a simple algorithm for estimating large numbers of distinct objects in a stream of data.
- Visualizing algorithms for rate limitingsmudge.ai rate limiter – smudge.ai blog
Smudge.ai is a Chrome extension that gives you ChatGPT-powered shortcuts in your right-click menu.
- Why the CORDIC algorithm lives rent-free in my headgithub.com githublog/2024/5/10/cordic.md at main · francisrstokes/githublog
I'm sick of complex blogging solutions, so markdown files in a git repo it is - francisrstokes/githublog
- Why are algorithms called algorithms? A brief history of the Persian polymath you’ve likely never heard oftheconversation.com Why are algorithms called algorithms? A brief history of the Persian polymath you’ve likely never heard of
Our modern lives are influenced by algorithms at every step. We can trace this influence back more than 1,200 years ago – to a Muslim mathematician.
- Packrat Parsing from Scratch (2021)blog.bruce-hill.com Packrat Parsing from Scratch
How to implement a packrat parser from scratch, one easy piece at a time.
- Introduction to Loro's Rich Text CRDTloro.dev Introduction to Loro's Rich Text CRDT
This article presents the rich text CRDT algorithm implemented in Loro, complying with [Peritext]'s criteria for seamless rich text collaboration. Furthermore, it can be built on top of any List CRDT algorithms and turn them into rich text CRDTs.
- Your (Graph) Data Fits in Memoryjazco.dev Your (Graph) Data Fits in Memory
We need a fast way to query multiple potentially large sets of data on-demand at interactive speeds. Sometimes the easiest solution to a hard problem is to build the right tool for the job.
- Circular Buffer Performance Trickcybernetist.com Circular Buffer Performance Trick
I have been hacking on AI agents recently for both fun and profit as part of the work I’m doing for one of my clients. They’re mostly text-to-speech (TTS) agents leveraging LLMs for generating text which is then turned into voice by a trained TTS model. As you [probably] know, maintaining conversati...
- Automerge CRDT | Automerge CRDTautomerge.org Automerge CRDT | Automerge CRDT
Automerge is a library of data structures for building collaborative applications.
- Beating hash tables with trees? The ART-ful radix triewww.the-paper-trail.org Beating hash tables with trees? The ART-ful radix trie | Paper Trail
Writing about distributed systems, compilers, virtual machines, databases and research papers from SOSP, ATC, NSDI, OSDI, EuroSys and others
- Designing a Data Structure (2008)okasaki.blogspot.com Designing a Data Structure
Students are rarely given an opportunity to design an algorithmically non-trivial data structure. We might give them a scenario and ask the...
- CppCon 2017: Matt Kulukundis “Designing a Fast, Efficient, Cache-friendly Hash Table, Step by Step”
YouTube Video
Click to view this content.
- Bump Allocation: Up or Down?coredumped.dev Bump Allocation: Up or Down?
Back in 2019, Nick Fitzgerald published always bump downwards, an article making the case that for bump allocators, bumping “down” (towards lower addresses) is better than bumping up. The biggest reasons for this are bumping up requires 3 branches vs 2 for bumping down and rounding down requires few...
- An Interactive Intro to CRDTsjakelazaroff.com An Interactive Intro to CRDTs | jakelazaroff.com
CRDTs don't have to be all academic papers and math jargon. Learn what CRDTs are and how they work through interactive visualizations and code samples.
- The Skip List Data Structure | Baeldung on Computer Sciencewww.baeldung.com The Skip List Data Structure | Baeldung on Computer Science
Explore skip lists and operations of insertion, search, and deletion using the skip list data structure.
- Conflict-free Replicated Data Typescrdt.tech About CRDTs • Conflict-free Replicated Data Types
Resources and community around CRDT technology — papers, blog posts, code and more.
- A Deep Dive Into Fiberplane’s Operational Transformationfiberplane.com A Deep Dive Into Fiberplane’s Operational Transformation - Blog
How Fiberplane Notebooks implement Operational Transformation
- “Prolly Tree” is short for “Probabilistic B-tree”www.dolthub.com Prolly Trees
A deep dive into the Probabilistic B-tree or Prolly Tree data structure including examples. Prolly Trees are used to create version controlled databases.