- A Field Guide To Genetic Programming - Riccardo Poli et al. (PDF)
- Algorithm Design - Jon Kleinberg and Éva Tardos (PDF)
- Algorithmic Graph Theory
- Algorithms - Wikibooks
- Algorithms, 4th Edition - Robert Sedgewick and Kevin Wayne
- Algorithms and Automatic Computing Machines (1963) - B. A. Trakhtenbrot
- Algorithms and Complexity - Herbert S. Wilf (PDF)
- Algorithms Course Materials - Jeff Erickson
- Algorithms Notes for Professionals - Compiled from StackOverflow Documentation (PDF)
- Analysis and Design of Algorithms - Sandeep Sen, IIT Delhi
- Animated Algorithm and Data Structure Visualization (Resource)
- Annotated Algorithms in Python: Applications in Physics, Biology, and Finance - Massimo di Pierro
- Binary Trees (PDF)
- Challenging algorithms and data structures every programmer should try
- Data Structures - Aditya CSE (PDF)
- Data Structures - Wikibooks
- Data Structures - Prof. Subhashis Banerjee, IIT Delhi
- Data Structures (Into Java) - Paul N. Hilfinger (PDF)
- Data Structures and Algorithms: Annotated Reference with Examples - G. Barnett and L. Del Tongo
- Data Structures Succinctly Part 1, Syncfusion (PDF, Kindle) (email address requested, not required)
- Data Structures Succinctly Part 2, Syncfusion (PDF, Kindle) (email address requested, not required)
- Elementary Algorithms - Larry LIU Xinyu
- Wikipedia - Fractal tree index: A refinement of the B-epsilon tree.
- Foundations of Computer Science - Al Aho and Jeff Ullman
- Geometry Algorithms - Dan Sunday
- Lectures Notes on Algorithm Analysis and Computational Complexity (Fourth Edition) - Ian Parberry (use form at bottom of license)
- LEDA: A Platform for Combinatorial and Geometric Computing - K. Mehlhorn et al.
- Linked List Basics (PDF)
- Linked List Problems (PDF)
- Matters Computational: Ideas, Algorithms, Source Code (PDF)
- Open Data Structures: An Introduction - Pat Morin
- Planning Algorithms
- Problems on Algorithms (Second Edition) - Ian Parberry (use form at bottom of license)
- Purely Functional Data Structures (1996) - Chris Okasaki (PDF)
- Sequential and parallel sorting algorithms
- Text Algorithms (PDF)
- The Algorithm Design Manual
- The Design of Approximation Algorithms (PDF)
- The Great Tree List Recursion Problem (PDF)
- The Kademlia Protocol Succinctly - Marc Clifton
- Think Complexity - Allen B. Downey (2nd Edition) (PDF, HTML)
Papers:
- An Introduction to Bε (B-epsilon) trees and Write-Optimization: "A Bε-tree is an example of a write-optimized data structure and can be used to organize on-disk storage for an application such as a database or filesystem. A Bε-tree provides a key-value API, similar to a B-tree, but with better performance, particularly for inserts, range queries, and key-value updates. This article describes the Bε-tree,compares its asymptotic performance to B-trees and Log-Structured Merge trees (LSM-trees), and presents real-world performance measurements. After finishing this article, a reader should have a basic understanding of how a Bε-treeworks, its performance characteristics, how it compares to other key-value stores, and how to design applications to gain the most performance from a Bε-tree."
- B-epsilon-tree and cache-oblivious lookahead array: a comparative study of two write-optimised data structures: "The ever-growing amounts of data stored in the world require efficient and fast data structures to store and process it. Due to the large size of such massive datasets, the data structures that operate on them grow so large that they can no longer fit in main memory. Thus, the number of I/O operations between fast main memory and slow disk becomes the performance bottleneck of these data structures. To properly assess their performance, these data structures are analysed in the external memory model that puts emphasis on the number of blocks transferred between main memory and disk.Multiple data structures and their variations were developed in the external memory model to optimise the number of block transfers, among which the B-tree is the most well-known one. One of the research areas related to designing data structures in the external memory model has been focused on making data structures that keep the same search performance as the B-tree but asymptotically improve the speed of writes. Despite extensive theoretical results in the area, little experimental data about performance of such write-optimised data structures is available. In this research study,we analysed two write optimised data structures--the B-tree and cache-oblivious lookahead array(COLA)--and performed experiments to determine which data structure performs better under which conditions. As our results show, the COLA has much better write speeds than the B-tree when inserted elements are not sorted, but achieves worse results when the data is sorted. Point queries are faster in the B-tree, which makes it a better choice for workloads that require more querying than updating data. Lastly, the support of an efficient read-and-update operation and more streamlined experience of implementing the B-tree compared to the COLA make it an even more favourable data structure to consider for a use in data storage systems."
- b-epsilon-tree: A simple implementation of the write-optimized B-epsilon tree
- You might not need a CRDT
Tags:
reading
Last modified 03 November 2024