Data Structures

3,200% CPU Utilization

An in-depth analysis of a critical Java performance issue where unprotected concurrent TreeMap modifications led to 3,200% CPU utilization. The investigation revealed how thread interleaving can create infinite loops in red-black trees, with experiments across multiple programming languages demonstrating similar vulnerabilities.

Tiny Pointers

A novel data structure called 'tiny pointer' is introduced, enabling the replacement of traditional logn-bit pointers with o(logn)-bit pointers while maintaining constant-factor time overhead. The research presents optimal constructions for both fixed-size and variable-size tiny pointers, demonstrating practical applications in five classic data structure problems.

Undergraduate Upends a 40-Year-Old Data Science Conjecture | Quanta Magazine

An undergraduate student at Rutgers University developed a revolutionary new hash table design that disproved a 40-year-old computer science conjecture by Andrew Yao, demonstrating faster data retrieval times than previously thought possible. The breakthrough shows that hash tables can achieve query times proportional to (log x)² instead of x, and in non-greedy cases, can maintain constant average query times regardless of table fullness.

the sudoku affair

A comparative analysis of two different approaches to building a Sudoku solver highlights how Peter Norvig's constraint propagation solution proved more effective than Ron Jeffries' incremental design approach. The core difference lay in their data representations - Norvig used a map of possible moves while Jeffries used a list mimicking the visual board, demonstrating how fundamental design choices impact solution elegance and extensibility.

Go Data Structures Posted on Tuesday, November 24, 2009.

A detailed explanation of Go programming language's memory representation and data structures, covering basic types, structs, arrays, and slices. The content explores how Go gives programmers control over memory layout and pointers, differentiating it from languages like Java, while explaining the efficiency considerations behind these design choices.