algorithmsdata_structures
A* search is an informed shortest-path algorithm that combines path cost so far with a heuristic estimate to the goal. It evaluates nodes using f(n) = g(n) + h(n), where g is the cost so far and h is ...
software_engineering
Agile methodology is a family of values, principles, and practices for delivering value incrementally under uncertainty. It emphasizes collaboration, customer feedback, adaptive planning, technical ex...
algorithms
Algorithms are step-by-step procedures or formulas for solving problems. They are fundamental to computer science and are used to perform tasks ranging from simple calculations to complex data process...
data_structuresalgorithms
All-Pairs Shortest Path (APSP) finds the minimum distance between every pair of vertices in a graph. Common solutions include Floyd-Warshall for dense graphs and negative edge support, repeated Dijkst...
data_structures
An array is a contiguous block of memory that stores a fixed number of elements of the same type. It supports fast random access by index and predictable memory layout, which makes it cache friendly. ...
Arrays are fundamental data structures that store a fixed-size sequence of elements of the same type in contiguous memory. They provide constant-time random access by index, efficient iteration, and f...
ArrayList is a resizable, indexed sequence in Java’s Collections Framework that stores elements in a contiguous array. It provides fast random access, amortized constant-time appends, and flexible cap...
object-oriented_programmingdata_structures
Explores how arrays interact with object-oriented programming: how arrays are represented across languages, how to design classes that encapsulate arrays, typing and polymorphism issues (like variance...
Artificial Intelligence (AI) refers to the simulation of human intelligence in machines that are programmed to think and learn. It encompasses a wide range of subfields, including machine learning, na...
ASCII (American Standard Code for Information Interchange) is a 7-bit character encoding standard that maps 128 numeric codes to common characters used in English-language text, including letters, dig...
Assembly language is a type of low-level programming language that correlates closely with the architecture of a computer's central processing unit (CPU). It is often used for direct hardware manipula...
AVL trees are self-balancing binary search trees that keep node heights tightly constrained to guarantee O(log n) time for search, insertion, and deletion. They maintain a balance factor of −1, 0, or ...
Backtracking is a general algorithmic technique for exploring a search space by building solutions incrementally and abandoning partial candidates as soon as they violate constraints. It is often impl...
algorithmsdata_structures
Bellman-Ford finds single-source shortest paths in weighted directed graphs, including those with negative edge weights. It reliably detects reachable negative cycles, which makes it more general than...
Best coding practices refer to the established techniques and methodologies used to write clean, maintainable, and efficient code. These practices aim to enhance code readability, reduce errors, and f...
data_structuresalgorithms
Big O notation describes how the running time or space usage of an algorithm grows with input size. It focuses on dominant terms and ignores constant factors, providing a language to compare and reaso...
basics_of_computer_science
Binary is the base-2 number system that uses only 0 and 1. Computers store and process data as bits, which combine into bytes and larger units. Understanding binary explains how numbers, text, images,...
data_structures
A binary search tree (BST) is a node-based data structure that stores keys in an ordered way to support efficient search, insertion, deletion, and traversal. Each node has up to two children, and the ...
data_structures
A binary tree is a hierarchical data structure where each node has at most two children, commonly referred to as the left and right child. Binary trees underpin many algorithms and specialized structu...
data_structuresmemory
Binary trees can be stored in a flat array by mapping node positions to indices. With 0-based indexing, the left child of i is 2i + 1, the right child is 2i + 2, and the parent is floor((i - 1) / 2). ...
Blockchain is a decentralized digital ledger that records transactions across multiple computers in a way that ensures the security and integrity of the data. It is the underlying technology behind cr...
Boolean values are the simplest data type in programming, representing true or false conditions. They are fundamental in controlling the flow of logic in programs, such as through conditional statemen...
Boolean Algebra, named after George Boole, is a form of mathematical logic that deals with binary variables and logical operations. Its operations are analogous to the operations of a switch. It is us...
algorithmsdata_structures
Boruvka's algorithm builds a minimum spanning tree by repeatedly connecting each component to its cheapest outgoing edge. It starts with every vertex as its own component and merges components in roun...
data_structuresalgorithms
Breadth-first search (BFS) is a method of exploring a graph outward layer-by-layer from a starting point. Its core purpose is to measure distance in terms of edge-steps, making it ideal for finding th...
Bubble Sort is a simple comparison-based sorting algorithm that repeatedly steps through a list, compares adjacent elements, and swaps them if they are in the wrong order. This process is repeated unt...
java
Bytecode is a form of intermediate code that is typically executed by a virtual machine rather than directly by the underlying hardware. It serves as a bridge between high-level programming languages ...
C is a general-purpose programming language that has influenced many modern languages. Known for its efficiency and control over system resources, C is widely used in system programming, embedded syst...
C++ is a high-performance programming language known for its capabilities in system programming, real-time applications, and game development. It combines object-oriented, procedural, and generic prog...
Circular linked lists are linked list variants in which the last node points back to the first node, forming a closed loop. They enable efficient cycle-based traversals and operations like round-robin...
object-oriented_programming
Classes and objects are fundamental concepts in object-oriented programming, allowing developers to create modular, reusable, and organized code by encapsulating data and behavior into class structure...
data_structuresalgorithms
Collision resolution refers to techniques for handling cases where two or more keys map to the same bucket or index in a hash table. Common strategies include separate chaining and open addressing (e....
Compilation is a crucial phase in any programming process that involves translating source code written in a programming language into a lower-level code that a machine can understand and execute. The...
Compiled languages are programming languages whose source code is translated by a compiler into machine code (or an intermediate form) before execution. This ahead-of-time translation enables fast sta...
A complete binary tree is a binary tree in which every level is fully filled except possibly the last, and all nodes in the last level are as far left as possible. This structure guarantees a height o...
object-oriented_programmingjava
Constructors in Java are special methods that initialize new objects. They run when you create an instance with new, have the same name as the class, and have no return type. Constructors can be overl...
Flow of control describes the order in which a program's statements, instructions, or function calls are executed. It encompasses sequential execution, decision-making (selection), looping (iteration)...
Control flow statements are essential programming constructs that allow developers to dictate the sequence in which instructions are executed within a program. These statements enable conditional exec...
data_structuresalgorithms
Cuckoo hashing is a collision-resolution strategy for hash tables that uses two (or more) hash functions. Each key has multiple possible locations; if an insertion finds a spot occupied, it "kicks out...
Data Encoding refers to the process of converting one form of data into another to facilitate storage or communication. This transformation ensures compatibility and efficient processing with differen...
Data Science is a multidisciplinary field that uses scientific methods, processes, algorithms, and systems to extract knowledge and insights from structured and unstructured data.
Data serialization is the process of converting structured data into a format that can be easily stored and transmitted, and then reconverted back into its original structure. It is essential for data...
data_structures
A data structure is a specialized way of organizing, storing, and accessing data so that operations like insertion, deletion, search, and traversal can be performed efficiently. Understanding data str...
Databases are organized collections of data that allow for efficient storage, retrieval, and management of information. They are essential for various applications across industries, enabling reliable...
Database indexing is a technique used by databases to speed up data retrieval. Indexes are auxiliary data structures (like B-trees or hash tables) that let the database find rows without scanning enti...
Debugging techniques are strategies and methods used to identify, analyze, and resolve bugs or defects in software code. These techniques help ensure that applications function as intended by locating...
Deleting a node with no children (a leaf) is the simplest deletion case in tree data structures. It involves locating the node, confirming it has no children, severing the link from its parent, and ha...
Deleting a node with exactly one child is a common case in tree data structures (especially binary search trees). The operation removes the node and directly connects its parent to the node’s only chi...
DevOps is a set of practices that combines software development (Dev) and IT operations (Ops) aiming to shorten the systems development life cycle and provide continuous delivery with high software qu...
algorithms
Dijkstra's algorithm finds the shortest paths from a single source to all other nodes in a weighted graph with non-negative edge weights. It uses a greedy strategy with a priority queue to always expa...
algorithmsapis_&_frameworks
A directed acyclic graph (DAG) is a directed graph with no cycles, which makes it perfect for modeling dependencies that must flow forward. DAGs guarantee at least one topological ordering of nodes th...
data_structuresalgorithms
A directed graph (digraph) is a set of nodes connected by edges that have direction. It models one-way relationships like links from page A to page B or task A must happen before task B. Direction cha...
data_structuresalgorithms
Disjoint Set Union (DSU), also called Union-Find, maintains a partition of elements into disjoint sets while supporting fast queries to check if two elements share a set and to merge sets. It uses a p...
A double-ended list is a linear data structure that supports efficient insertions and deletions at both the front and the back. It is commonly implemented with head and tail references and often uses ...
A doubly linked list is a linear data structure where each node holds a value and two references: one to the next node and one to the previous node. This bidirectional linking enables efficient insert...
data_structuresalgorithms
Edmonds-Chu-Liu finds a minimum-cost arborescence: a directed, rooted spanning tree that minimizes total edge weight. It works by selecting one minimum incoming edge per node, contracting any cycles, ...
object-oriented_programmingjava
Encapsulation is a fundamental concept in object-oriented programming that involves bundling data and methods that operate on that data within a single unit or class, and restricting access to some of...
Endianness describes the byte order used to represent multi-byte data (like 16-, 32-, or 64-bit integers) in memory or when transmitted over a byte stream. The two dominant conventions are big-endian ...
software_engineeringpython
Exception handling is a structured way to detect and respond to abnormal conditions during execution - whether they stem from internal program logic (like invalid operations or runtime computation err...
data_structures
Floyd-Warshall computes shortest path distances between every pair of vertices in a weighted graph, even with negative edges. It uses dynamic programming over a distance matrix and iteratively improve...
functional_programming
Functional programming is a declarative programming paradigm where computation is modeled as the evaluation of functions without mutable state or side effects. It emphasizes pure functions, immutabili...
Functions are fundamental building blocks in programming that allow for code reuse, modularity, and abstraction. Scope defines the visibility and lifetime of variables and parameters in a program, det...
memorybasics_of_computer_science
Computing turns information into action using layers of abstraction, from bits and logic up to software and networks. You write source code that becomes instructions a CPU can execute, using memory an...
data_structures
Graphs model relationships between things using vertices (nodes) and edges (links). They can be directed or undirected, weighted or unweighted, and may contain cycles. In code, graphs are typically st...
data_structuresalgorithms
An adjacency list represents a graph by storing, for each vertex, a list of its neighboring vertices. It is the go-to structure for sparse graphs because it uses space proportional to V + E. Edge inse...
data_structuresalgorithms
An adjacency matrix is a square n×n matrix that represents a graph with n vertices. Entry A[i][j] indicates whether an edge exists from i to j, or stores the edge weight in weighted graphs. It offers ...
algorithmsdata_structuresbasics_of_computer_science
Graph cost captures how we measure and optimize over weighted graphs, usually by minimizing or maximizing sums of edge weights. Core problems include building minimum spanning trees, finding shortest ...
data_structuresalgorithms
Depth-first search (DFS) is a fundamental graph traversal that explores as far as possible along each branch before backtracking. It can be implemented with recursion or an explicit stack, and it work...
data_structures
Graph theory studies networks of nodes and connections, called vertices and edges. It gives us language and tools to model roads, social links, dependencies, and more. You learn how to represent graph...
data_structures
Graph traversal is the process of visiting vertices and edges of a graph in a systematic order. The two core strategies are breadth-first search and depth-first search, each uncovering structure in di...
algorithmsdata_structuresbasics_of_computer_sciencepython
A greedy algorithm builds a solution step by step by always taking the locally best option available. It is fast and simple, often relying on sorting or priority queues to repeatedly pick the next bes...
A hash is a function that converts an input (or 'message') into a fixed-length string of bytes. The output is typically a 'digest' that is unique to each unique input.
data_structuresalgorithms
Hash functions map data of arbitrary size to fixed-size values (hashes) quickly and deterministically. Good hashes distribute inputs uniformly, minimize collisions, and are efficient. They underpin da...
data_structures
Hash tables (also called hash maps or dictionaries) are data structures that store key–value pairs and provide average-case constant-time insertion, lookup, and deletion. They use a hash function to m...
Double hashing is an open addressing collision-resolution technique for hash tables. It uses two hash functions: the first chooses an initial bucket, and the second computes a step size to probe alter...
data_structures
Linear probing is a collision-resolution strategy for open-addressed hash tables. When a collision occurs, the algorithm linearly scans subsequent slots in the table (wrapping around) until it finds a...
data_structuresalgorithms
Open addressing is a collision resolution strategy for hash tables that stores all entries inside the table array. When a collision happens, the algorithm probes alternative indices until it finds an ...
data_structures
Quadratic probing is a collision-resolution strategy for open-addressed hash tables. When a collision occurs, it probes alternative slots using a quadratic function of the probe number to reduce clust...
data_structures
Separate chaining is a collision-resolution technique for hash tables where each table slot (bucket) stores a collection of key–value pairs that hash to the same index, typically using linked lists or...
data_structures
A hashmap is a fast key–value data structure that uses a hash function to map keys to positions (buckets) in an array. It provides average-case constant-time insert, lookup, and delete operations by d...
data_structures
Heaps are tree-based data structures that efficiently maintain a partial ordering, enabling fast access to the minimum or maximum element. Most commonly implemented as array-backed binary heaps, they ...
data_structures
Heap index math is the arithmetic that maps between tree relationships and array positions in array-backed heaps. It provides constant-time formulas to find a node’s parent, children, siblings, and le...
data_structures
Heapify is the process of rearranging an array or tree so it satisfies the heap property: in a max-heap every parent is ≥ its children; in a min-heap every parent is ≤ its children. It is typically im...
Heaps are specialized tree-based data structures that satisfy the heap property, allowing for efficient priority queue implementations. Priority queues enable elements to be processed based on priorit...
Heapsort is a comparison-based sorting algorithm that uses a binary heap to produce a sorted array in-place. It runs in O(n log n) time in the worst, average, and best cases, uses O(1) extra space, an...
basics_of_computer_science
Hexadecimal is a base-16 numeral system that uses digits 0–9 and letters A–F to represent values compactly. It maps cleanly to binary because one hex digit equals four bits, making it ideal for readin...
algorithms
A Hidden Markov Model (HMM) is a probabilistic model for sequences where the underlying states are hidden but generate observable outputs. It assumes a first order Markov process over hidden states an...
If–elseif–else is a fundamental control-flow construct that chooses between alternative code paths based on Boolean conditions. It evaluates conditions in order, executes the first matching branch, an...
functional_programming
Immutable data refers to values or structures that cannot be changed after they are created. Instead of modifying data in place, new versions are produced for any update. This model improves predictab...
In-memory databases store data directly in the main memory (RAM) rather than on disk drives, allowing for faster data retrieval and processing speeds. They are utilized in applications requiring rapid...
In-memory databases store data in a computer's main memory (RAM) rather than on traditional disk storage, offering rapid data access and high performance, especially useful for applications requiring ...
In-order traversal is a depth-first algorithm for visiting all nodes of a binary tree in a specific order: left subtree, current node, then right subtree. It is especially useful for binary search tre...
object-oriented_programmingjava
Inheritance is an object-oriented programming mechanism that lets a new class (subclass) reuse and extend the behavior and data of an existing class (superclass). It enables code reuse, establishes na...
Insertion sort is a simple, comparison-based sorting algorithm that builds a sorted portion of the list one element at a time by inserting each new element into its correct position. It is in-place, s...
Integers are a fundamental data type in programming, representing whole numbers without fractional components. They are used extensively for counting, indexing, and other operations that require whole...
algorithmsdata_structures
Algorithms are step-by-step methods for solving problems efficiently and correctly. This overview covers what algorithms are, how to reason about correctness, and how to measure time and space with Bi...
data_structuresalgorithmsbasics_of_computer_sciencememorysoftware_engineering
Data structures are ways to organize data so operations like access, insert, delete, and search are efficient. The right structure can turn a slow program into a fast one by shaping how data is stored...
data_structures
Graphs model relationships between things using nodes and edges. They can be directed or undirected, weighted or unweighted, dense or sparse. You will use them to traverse connections, find paths, sch...
data_structures
Hash tables are a fundamental data structure that map keys to values using a hash function, enabling fast average-case insert, lookup, and delete operations. They organize data into buckets indexed by...
data_structures
Heaps are tree-based data structures that maintain a partial order, enabling efficient retrieval of the minimum or maximum element. Typically implemented as arrays representing complete binary trees, ...
Linked lists are fundamental linear data structures made of nodes, where each node stores data and a reference (pointer) to the next node. Unlike arrays, they do not require contiguous memory and allo...
Programming is the process of creating a set of instructions that tell a computer how to perform a task. It involves writing code in a programming language to solve problems or automate tasks.
Sorting is the process of arranging items in a collection according to a defined order, typically ascending or descending based on a key. It underpins faster searching, efficient data processing, clea...
data_structuresalgorithms
A weighted graph is a graph where each edge carries a numeric value called a weight, often representing cost, distance, time, or capacity. Weights change how you evaluate paths and structures, directl...
Iterators provide a uniform way to traverse elements of a collection or data source one at a time without exposing its underlying representation. They enable lazy, memory-efficient processing and form...
java
Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a widely-used programming language for developing...
java
The Java Virtual Machine (JVM) is a crucial component of the Java Runtime Environment (JRE) that enables Java applications to run on any device or operating system without modification. It is responsi...
java.util is a core Java SE package that provides foundational utilities: the Collections Framework (lists, sets, maps, queues), algorithms and utilities (Collections, Arrays, Objects), iteration (Ite...
java.util.Scanner is a Java utility class for tokenizing and parsing text input from sources like standard input, strings, files, and streams. It splits input into tokens based on a delimiter (whitesp...
data_structuresalgorithms
Kruskal is a greedy algorithm for building a minimum spanning tree of a weighted, undirected graph. It sorts edges by weight and adds the next lightest edge that does not form a cycle, using a union-f...
Large Language Models (LLMs) are a class of artificial intelligence models designed to understand, generate, and manipulate human language. They are built on neural network architectures and are train...
A linked list is a linear data structure composed of nodes, where each node stores data and a reference (link) to the next node. Unlike arrays, linked lists do not require contiguous memory and suppor...
A linked list is a linear data structure composed of nodes, where each node holds data and references (pointers) to other nodes. Unlike arrays, linked lists do not store elements contiguously in memor...
Logical operators combine or invert boolean values to build complex conditions in programs. Core operators include AND, OR, and NOT, with variants like XOR and their short-circuiting behavior. Underst...
Loops and iteration are fundamental programming constructs that repeat a block of code until a condition changes. They enable tasks like processing collections, performing repeated computations, and a...
Machine Code is the lowest level of software code that can be directly executed by the machine's CPU. Often represented in binary or hexadecimal format, machine code includes instructions that dictate...
data_structuresalgorithms
A Markov chain tracks how likely a system is to move from one state to another. The transition data can be stored either as an adjacency list (per-state neighbors and weights) or as an adjacency/trans...
algorithmsdata_structures
A maximum spanning tree (Max-ST) connects all vertices of a weighted, undirected graph with the highest possible total edge weight while avoiding cycles. It is the mirror concept of the minimum spanni...
algorithms
Merge sort is a classic divide-and-conquer sorting algorithm that splits a list into halves, recursively sorts each half, and then merges the sorted halves into a fully ordered list. It runs in O(n lo...
Methods are named blocks of code associated with a type or object that perform actions, compute results, or coordinate behavior. They encapsulate logic behind a stable interface, accept parameters, ma...
data_structuresalgorithms
A minimum spanning tree (MST) connects all vertices in a weighted, undirected, connected graph with the minimum total edge weight and no cycles. It is a foundational concept for network design, cluste...
Natural Language Processing (NLP) is a field of artificial intelligence that focuses on the interaction between computers and humans through natural language. It involves the development of algorithms...
A nonce is a unique or random value used in cryptography and computer security to ensure the uniqueness of a transaction or interaction to prevent various types of attacks.
None (also called null, nil, or undefined in various languages) represents the absence of a value. It is a fundamental programming concept used to indicate "no data," "not applicable," or "not yet ass...
Null represents the absence of a value or a non-existent reference in programming and databases. It is often used to indicate that a variable, object, or field has been deliberately set to have no val...
python
NumPy is the fundamental package for numerical computing in Python. It provides the n-dimensional array (ndarray), efficient vectorized operations, broadcasting, a suite of mathematical routines (incl...
O(N^2) quadratic time complexity represents an algorithm whose performance is directly proportional to the square of the size of the input data set. This kind of complexity is often seen in algorithms...
Object-Oriented Programming (OOP) is a programming paradigm that uses 'objects' to design software. It allows for structuring programs so that properties and behaviors are bundled into individual obje...
An ordered array is a contiguous collection of elements maintained in sorted order according to a comparison rule. This structure enables efficient searching (typically O(log n) with binary search) an...
algorithmsbasics_of_computer_science
PageRank is a link analysis algorithm that assigns importance scores to nodes in a directed graph using the random surfer model. It models a Markov chain where a surfer follows links with probability ...
software_engineeringtestingversion_control
Pair programming is a collaborative software development technique where two people work together at one workstation (physically or remotely) to design, code, and test a solution. One person acts as t...
algorithms
Perfect hashing is a technique for constructing a hash function that maps a fixed, known set of keys to distinct table indices with zero collisions. It provides worst-case O(1) lookup and is especiall...
Pointers are variables that store memory addresses instead of direct values. They enable programs to reference, share, and manipulate data in memory, making features like dynamic memory allocation, ef...
Pointer chasing is the process of following chains of memory references (pointers) where each load reveals the address of the next load. It occurs in pointer-rich data structures like linked lists, tr...
object-oriented_programmingjava
Polymorphism is a core programming concept where values of different types can be treated through a uniform interface. It enables code reuse, extensibility, and decoupling by allowing one operation or...
Post-order traversal is a depth-first tree traversal strategy that visits all children of a node before the node itself. In binary trees, the order is left subtree, right subtree, then root (LRN). It ...
Pre order traversal is a depth-first tree traversal strategy that visits each node before its subtrees. In binary trees, the canonical order is: visit the root, traverse the left subtree, then travers...
data_structuresalgorithms
Prim's algorithm is a greedy method to build a minimum spanning tree of a connected, weighted, undirected graph. It starts from any vertex and repeatedly adds the smallest edge that connects the growi...
data_structures
A priority queue is an abstract data type that stores items each with an associated priority, always allowing quick access to the highest- or lowest-priority item. It underpins many algorithms and sys...
Programming languages are formal languages comprising a set of instructions that produce various kinds of output. They are used in computer programming to implement algorithms and create software appl...
algorithmsbasics_of_computer_science
Pseudocode is a language-agnostic way to describe algorithms and program logic using plain, structured steps. It removes syntax details so you can focus on thinking clearly about the procedure. Teams ...
python
Python is a high-level, interpreted, general-purpose programming language known for its readability, simplicity, and extensive standard library. It supports multiple paradigms—procedural, object-orien...
scripting_languagespython
Python fundamentals cover the core concepts needed to read, write, and reason about Python code. This includes Python’s syntax and indentation, variables and basic data types, control flow (conditiona...
A queue is a linear data structure and abstract data type that stores elements in the order they are added and retrieves them in first-in, first-out (FIFO) order. Queues support operations like enqueu...
Quick Sort is a divide-and-conquer comparison sorting algorithm that partitions a list around a pivot element, then recursively sorts the sublists on either side of the pivot. It runs in average O(n l...
Rainbow tables are precomputed data structures used to reverse cryptographic hashes of unsalted passwords by trading storage space for faster lookups. They build chains of alternating hash and reducti...
Recursion is a problem-solving and programming technique where a function calls itself to solve smaller instances of the same problem. It relies on clearly defined base cases to stop and recursive cas...
A red-black tree is a self-balancing binary search tree that guarantees O(log n) time for search, insert, and delete operations. It maintains balance using node colors (red or black) and a set of inva...
Redis is an open-source, in-memory data structure store that is used as a database, cache, and message broker. Known for its speed and flexibility, Redis supports various data structures like strings,...
Robotics is the interdisciplinary field that integrates computer science and engineering to design, construct, operate, and use robots. It involves the creation of systems that can perform tasks auton...
Rust is a systems programming language that emphasizes speed, memory safety, and parallelism. It is designed to enable developers to create reliable and efficient software with a strong focus on preve...
In cybersecurity and cryptography, a salt is random data added to a password or secret before hashing to make each hash unique. Salts prevent attackers from using precomputed tables (rainbow tables), ...
scripting_languages
A scripting language is a high-level programming language designed to automate tasks, integrate ("glue") software components, and enable rapid development. Scripts are typically executed by an interpr...
Search algorithms are methods for locating a target item within a collection or navigating structures like arrays, trees, and graphs. They range from simple scans to sophisticated, heuristic-driven st...
Selection sort is a simple comparison-based sorting algorithm that repeatedly selects the smallest remaining element and moves it to its correct position. It runs in quadratic time, uses constant extr...
Serialization is the process of converting in-memory data structures or objects into a format that can be stored or transmitted and later reconstructed (deserialized). It underpins data persistence, i...
SHA-256 is a cryptographic hash function that produces a 256-bit hash value, often represented as a 64-digit hexadecimal number. It is widely used in security applications and protocols, including TLS...
data_structuresalgorithmsbasics_of_computer_science
Shortest path problems ask for the minimum-cost route between nodes in a graph. Cost can mean hops, time, distance, or any additive weight on edges. Different constraints call for different algorithms...
A simple (singly) linked list is a linear data structure where each element (node) stores a value and a reference to the next node. It enables efficient insertions and deletions at known positions (es...
data_structuresalgorithms
Single-pair shortest path finds the minimum-cost route between one source node and one target node in a graph. It differs from single-source and all-pairs problems by optimizing effort for just one pa...
data_structuresalgorithms
Single-source shortest path (SSSP) finds the minimum-cost path from one start node to every other node in a weighted graph. The right algorithm depends on edge weights and graph structure: BFS for unw...
testingsoftware_engineering
Software engineering is the systematic application of engineering approaches to the development of software. It involves the principles of software design, development, testing, and maintenance to ens...
Splay trees are self-adjusting binary search trees that move recently accessed elements to the root via rotations, a process called splaying. They guarantee efficient performance over sequences of ope...
Stable sorting preserves the relative order of elements that compare equal under the chosen key or comparator. This property is essential when data has multiple attributes or when you perform multiple...
Stable sorting refers to sorting algorithms or implementations that preserve the relative order of records with equal keys. Stability is crucial when performing multi-key sorts, when original order co...
A stack is a fundamental linear data structure that follows the Last-In, First-Out (LIFO) principle. Items are added and removed only from the top, supporting fast push, pop, and peek operations. Stac...
A stack is a Last-In, First-Out (LIFO) data structure. Implementing a stack with a linked list uses the list’s head as the stack top, enabling O(1) push and pop without resizing. This approach offers ...
Stacks and queues are fundamental data structures used to store and manage data in a specific order. A stack follows the Last In, First Out (LIFO) principle, whereas a queue follows the First In, Firs...
Strings are a fundamental data type used in programming to represent text. They are sequences of characters and are employed in almost every aspect of software development, from handling user input to...
Switch/case is a control-flow construct that selects one of many branches based on the value of an expression. It provides a clearer, often more efficient alternative to long chains of if/else-if stat...
Thread safety is a concept in software development that ensures that shared data structures or resources are accessed correctly when multiple threads are involved, preventing data corruption or unexpe...
basics_of_computer_scienceapis_&_frameworks
A token is a small, meaningful unit used to represent information in computing. In code, lexers convert raw text into tokens that parsers can understand. In security and APIs, tokens carry identity an...
Tokenization is the process of breaking down text into smaller units called tokens, which could be words, phrases, or symbols. It is a fundamental step in natural language processing (NLP) and text an...
data_structuresalgorithms
A tree is a hierarchical data structure where nodes are connected by edges with exactly one path from the root to any node. It models parent-child relationships and is a special case of a graph that i...
An overview of the standard terminology used to describe tree data structures, including nodes, edges, hierarchy relationships (parent, child, ancestor), structural measures (height, depth, degree), c...
Trees and binary search trees are fundamental data structures used in computer science for organizing and managing data efficiently. Trees provide a hierarchical structure, while binary search trees a...
data_structuresalgorithms
A trie is a prefix tree for strings that stores characters along paths, sharing common prefixes across keys. It offers O(L) insert, search, and prefix queries where L is the key length, largely indepe...
A UML Class Diagram is a static structural diagram that models the classes, interfaces, attributes, operations, and relationships within a system. It helps visualize the domain and software design, cl...
data_structuresalgorithms
An undirected graph models relationships where connections have no direction, like mutual friendships or two-way roads. It consists of vertices (nodes) and edges that connect pairs of vertices. Key id...
Variables and data types are foundational concepts in programming, allowing developers to store and manipulate data within a program. Variables act as containers for data, while data types define the ...
Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. It is an essential tool in software development, allowing multiple ...
compiled_languagescc++rust
WebAssembly (Wasm) is a compact, low-level bytecode format designed to run high-performance code safely and portably across platforms, especially in web browsers and lightweight runtimes. Developers t...
data_structures
A weighted graph is a graph where each edge has a numeric weight that represents cost, distance, capacity, or any measurable value. It can be directed or undirected, and weights may be positive, zero,...
XML, or eXtensible Markup Language, is a flexible text format used for structuring, storing, and transporting data. It provides a set of rules for encoding documents in a format that is both human-rea...
YAML (YAML Ain't Markup Language) is a human-readable data serialization format that is often used for configuration files and data exchange between languages with different data structures. It is des...