Data Structures and Algorithms
- 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.
- 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).
- • 100%blog.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.
- • 100%www.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.
- planetscale.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.
- 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.
- 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...
- • 100%transactional.blog Erasure Coding for Distributed Systems
An overview of erasure coding, its trade-offs, and applications in distributed storage systems.
- • 100%victoriametrics.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.
- • 100%loro.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.
- • 100%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>
- databasearchitects.blogspot.com B-trees Require Fewer Comparisons Than Balanced Binary Search Trees
A blog by and for database architects.
- • 100%jacksonallan.github.io An Extensive Benchmark of C and C++ Hash Tables
A comparative, extendible benchmarking suite for C and C++ hash-table libraries.
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
- www.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.
- smudge.ai rate limiter – smudge.ai blog
Smudge.ai is a Chrome extension that gives you ChatGPT-powered shortcuts in your right-click menu.
- github.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
- theconversation.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.
- blog.bruce-hill.com Packrat Parsing from Scratch
How to implement a packrat parser from scratch, one easy piece at a time.
- • 100%loro.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.
- • 100%
- jazco.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.