Data Structures
Data Structures are containers for values or data organized in a specific way to perform specific operation(s) efficiently. Common data structures include arrays, linked lists, stacks, queues, and trees. Data structures can be used as building blocks for solving data-related problems. You likely use various data structures in your day-to-day life, even if you don’t realize it. Here are a few examples in which you may see real-world examples of data structures outside of software:
- Library Bookshelves: Libraries are organized using a data structure similar to an array or list, where books are stored in a specific order, often based on genres, authors, or the Dewey Decimal System.
- Supermarket Aisles: Supermarkets use data structures like queues (for checkout lines) and arrays (for organizing products on shelves) to optimize customer flow.
- Phone Directories: Phonebooks are organized using data structures like dictionaries or hash tables to allow for quick lookups of names and corresponding phone numbers.
- Mail Sorting: Post offices use data structures such as priority queues to sort and distribute mail efficiently, ensuring timely delivery.
Algorithms are step-by-step instructions for solving specific problems. They manipulate data stored in data structures. Common algorithms are designed to sort data or search for data within a data structure, but algorithms may also be written to solve more specific problems. Similarly, you likely use some common algorithms in your daily life. Here’s a few real-world examples:
- Shopping List: Grocery lists are often sorted by aisle to optimize a shopping trip to allow you to gather similar items around the same time.
Data Structures & Algorithms is a common topic in software engineering careers because of its aide in solving real-world problems through software. Because of this, it is a common topic in software engineering courses and often asked as part of the interview process for software development jobs. The following tutorials will guide you through real examples of data structures and algorithms that you may find in the real-world.
Hash Tables
Introduction Hash tables (also called hash maps or dictionaries) are one of the most important data structures you will use as a developer. They provide near constant-time lookups, inserts, and deletes on average, making them a go-to choice for many real-world problems. By the end of this tutorial, you’ll understand how hash tables work, what a hash function is, how collisions are handled, and when to prefer a hash table over other structures like arrays or linked lists. Read more →
November 18, 2025
Linked Lists
Introduction A linked list is a linear data structure made of nodes where each node stores a value and a reference (a “link”) to the next node. Unlike arrays, linked lists do not store elements contiguously in memory. This gives them different performance characteristics and trade-offs. If you are new to time and space complexity, start with our guide to Big-O Notation. You may also want to review Arrays to understand how linked lists compare. Read more →
November 18, 2025
Binary Search
Introduction Binary search is a classic algorithm used to quickly find the position of a target value within a sorted collection. It repeatedly divides the search interval in half, discarding the half that cannot contain the target. Because of this halving behavior, binary search runs in logarithmic time: O(log n). If you are new to complexity analysis, review our guide to Big-O Notation. Also see our overview of Arrays, since binary search is most commonly applied to sorted arrays. Read more →
November 18, 2025
Big-O Notation
Introduction In the realm of computer science and software engineering, the performance of an algorithm plays a pivotal role. But how do we gauge this performance? That’s where the concept of Big-O notation comes in. This article provides an overview of Big-O notation, its importance, and some common time complexities you might come across. What is Big-O Notation? Big-O notation is a theoretical measure of the execution time of an algorithm or the space it uses in relation to its input size. Read more →
September 14, 2023
Arrays
Introduction Arrays are data structures that contain a list of sequenced data. They are often organized close together in computer’s memory or storage to optimize for iteration. Arrays are one of the most fundamental data structures in programming. They serve as a building block for many other advanced data structures and algorithms. By the end of this tutorial, you’ll understand what arrays are, how they work, and their various applications. Read more →
September 11, 2023