C library for creating and accessing sparse dynamic arrays
Judy is a C library that implements a dynamic array. Empty Judy arrays are declared with null pointers. A Judy array consumes memory only when populated yet can grow to take advantage of all available memory. Judy's key benefits are: scalability, performance, memory efficiency, and ease of use. Judy arrays are designed to grow without tuning into the peta-element range, scaling near O(log-base-256).
Judy arrays are accessed with insert, retrieve, and delete calls for number or string indexes. Configuration and tuning are not required -- in fact not possible. Judy offers sorting, counting, and neighbor/empty searching. Indexes can be sequential, clustered, periodic, or random -- it doesn't matter to the algorithm. Judy arrays can be arranged hierarchically to handle any bit patterns -- large indexes, sets of keys, etc.
Judy is often an improvement over common data structures such as: arrays, sparse arrays, hash tables, B-trees, binary trees, linear lists, skiplists, other sort and search algorithms, and counting functions.