Displaying 1 to 20 from 98 results

gods - GoDS (Go Data Structures)


Implementation of various data structures and algorithms in Go.Containers are either ordered or unordered. All ordered containers provide stateful iterators and some of them allow enumerable functions.

go-datastructures


Go-datastructures is a collection of useful, performant, and threadsafe Go datastructures.Interval tree for collision in n-dimensional ranges. Implemented via a red-black augmented tree. Extra dimensions are handled in simultaneous inserts/queries to save space although this may result in suboptimal time complexity. Intersection determined using bit arrays. In a single dimension, inserts, deletes, and queries should be in O(log n) time.




immutable-js - Immutable persistent data collections for Javascript which increase efficiency and simplicity


Immutable data cannot be changed once created, leading to much simpler application development, no defensive copying, and enabling advanced memoization and change detection techniques with simple logic. Persistent data presents a mutative API which does not update the data in-place, but instead always yields new updated data.

BoomFilters - Probabilistic data structures for processing continuous, unbounded streams.


Boom Filters are probabilistic data structures for processing continuous, unbounded streams. This includes Stable Bloom Filters, Scalable Bloom Filters, Counting Bloom Filters, Inverse Bloom Filters, Cuckoo Filters, several variants of traditional Bloom filters, HyperLogLog, Count-Min Sketch, and MinHash.Classic Bloom filters generally require a priori knowledge of the data set in order to allocate an appropriately sized bit array. This works well for offline processing, but online processing typically involves unbounded data streams. With enough data, a traditional Bloom filter "fills up", after which it has a false-positive probability of 1.

interactive-coding-challenges - Interactive Python coding interview challenges (algorithms and data structures)


Overhauled to now include 120 challenges and solutions and added Anki flashcards.Also included are unit tested reference implementations of various data structures and algorithms.

Redis - Advanced key-value store


Redis is an advanced key-value store. It is similar to memcached but the dataset is not volatile, and values can be strings, exactly like in memcached, but also lists, sets, and ordered sets. All this data types can be manipulated with atomic operations to push/pop elements, add/remove elements, perform server side union, intersection, difference between sets, and so forth. Redis supports different kind of sorting abilities.


Tape - A lightning fast, transactional, file-based FIFO for Android and Java.


A lightning fast, transactional, file-based FIFO for Android and Java. QueueFile is a lightning-fast, transactional, file-based FIFO. Addition and removal from an instance is an O(1) operation and is atomic. Writes are synchronous; data will be written to disk before an operation returns. The underlying file is structured to survive process and even system crashes and if an I/O exception is thrown during a mutating change, the change is aborted.

hyperloglog - HyperLogLog with lots of sugar (Sparse, LogLog-Beta bias correction and TailCut space reduction)


An improved version of HyperLogLog for the count-distinct problem, approximating the number of distinct elements in a multiset using 20-50% less space than other usual HyperLogLog implementations.This work is based on "Better with fewer bits: Improving the performance of cardinality estimation of large data streams - Qingjun Xiao, You Zhou, Shigang Chen".

golang-set - A simple set type for the Go language. Also used in Docker.


The missing set collection for the Go language. Until Go has sets built-in...use this.I have to give some credit for helping seed the idea with this post on stackoverflow.

JCTools - Java Concurrency Tools for the JVM


Java Concurrency Tools for the JVM. This project aims to offer some concurrent data structures currently missing from the JDK.

Eclipse Collections - Best Java Collection Framework


Eclipse Collections is a collections framework for Java. It has JDK-compatible List, Set and Map implementations with a rich API, additional types not found in the JDK like Bags, Multimaps, and set of utility classes that work with any JDK compatible Collections, Arrays, Maps, or Strings. The iteration protocol was inspired by the Smalltalk collection framework. It maximizes the power of Java 8 Lambda expressions and method references with rich APIs directly available on your collections.

Agrona - Library to build high-performance applications in Java and C++


Agrona provides a library of data structures and utility methods that are a common need when building high-performance applications in Java and C++. It supports Buffers, Map, Sets, Cache, Queues and lot more.

stream.js - A tiny stand-alone Javascript library for streams


stream.js is a tiny Javascript library that unlocks a new data structure for you: streams. Go to https://dionyziz.github.io/stream.js-website/ to read all about what streams are and how they can make your code better and your soul happier.