Data Structures and Algorithms
- What is GZIP Compression and is it Lossless?bunny.net What is GZIP Compression and is it Lossless?
GZIP Compression is an extremely popular technique of lossless compression for photos, videos, & web pages. It is used by a large number of websites.
- Conflict Resolution: Using Last-Write-Wins vs. CRDTs (2018)dzone.com Conflict Resolution: Using Last-Write-Wins vs. CRDTs - DZone
Learn about two common techniques for resolving conflicts in your database: last-write-wins (LWW) and conflict-free replicated data types (CRDTs).
- When Bloom filters don't bloomblog.cloudflare.com When Bloom filters don't bloom
Last month finally I had an opportunity to use Bloom filters. I became fascinated with the promise of this data structure, but I quickly realized it had some drawbacks.
- What is a Log Structured Merge Tree? Definition & FAQs | ScyllaDBwww.scylladb.com What is a Log Structured Merge Tree? Definition & FAQs | ScyllaDB
Learn the definition of log structured merge tree and get answers to FAQs regarding: how LSM trees work to speed write operations and store keys and data efficiently.
- B-trees and database indexesplanetscale.com B-trees and database indexes — PlanetScale
B-trees are used by many modern DBMSs. Learn how they work, how databases use them, and how your choice of primary key can affect index performance.
- Flattening ASTs (and Other Compiler Data Structures)www.cs.cornell.edu Flattening ASTs (and Other Compiler Data Structures)
This is an introduction to data structure flattening, a special case of arena allocation that is a good fit for programming language implementations. We build a simple interpreter twice, the normal way and the flat way, and show that some fairly mechanical code changes can give you a 2.4× speedup.
- Operation-based CRDTs: arrays (part 1) (2020)www.bartoszsypytkowski.com Operation-based CRDTs: arrays (part 1)
In this post, we'll continue onto topic of Commutative Replicated Data Types. We already mentioned [https://www.bartoszsypytkowski.com/operation-based-crdts-registers-and-sets/#sets] how to prepare first, the most basic types of collections: sets. This time we'll go take a look at indexed sequence...
- Erasure Coding for Distributed Systemstransactional.blog Erasure Coding for Distributed Systems
An overview of erasure coding, its trade-offs, and applications in distributed storage systems.
- Go Maps Explained: How Key-Value Pairs Are Actually Storedvictoriametrics.com Go Maps Explained: How Key-Value Pairs Are Actually Stored
Map is a built-in type that acts as a key-value storage. Unlike arrays where you’re stuck with keys as increasing indices like 0, 1, 2, and so on, with maps, the key can be any comparable type.
- Movable tree CRDTs and Loro's implementationloro.dev Movable tree CRDTs and Loro's implementation
This article introduces the implementation difficulties and challenges of Movable Tree CRDTs when collaboration, and how Loro implements it and sorts child nodes. The algorithm has high performance and can be used in production.
- What is a CIDR trie and how can it help you?d34dl0ck.me What is a CIDR trie and how can it help you?
<p>In this post, we will explore the CIDR trie data structure and how it can help you manage IP addresses and subnets in your Rust project.</p>
- 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.