Skip to main content

54 docs tagged with "dsa"

View all tags

A* Algorithm

This page explains the A* Algorithm for finding the shortest path in a graph using heuristics.

All Problems on Arrays in DSA

Arrays are the most basic data structure in computer science. They are used to store a collection of elements of the same type. In this article, we will learn about arrays, their properties, and the problems related to arrays in Data Structures and Algorithms. We will also discuss the problems for practice.

Arrays and Strings

In this tutorial, we will learn about arrays and strings in programming. We will discuss what arrays and strings are, how they are used, and how they are different from each other.

Basics of Programming

Programming is the process of writing instructions for a computer to perform a specific task. It involves writing code in a programming language that the computer can understand and execute. Programming is an essential skill for any software developer or computer scientist. In this tutorial, we will cover the basics of programming, including the following topics:

Bellman-Ford Algorithm

This page explains the Bellman-Ford Algorithm for finding the shortest path in a graph with negative weight edges.

Borůvka's Algorithm

This page explains Borůvka's Algorithm, an algorithm for finding the minimum spanning tree (MST) of a graph.

Breadth-First Search

This page explains Breadth-First Search for traversing or searching tree or graph data structures.

C++ Iterators

Hello, C++ enthusiasts! Today, we’re diving into one of the most essential and versatile components of the C++ Standard Template Library (STL): the iterator. If you’re looking to enhance your understanding and utilization of iterators in C++, you’re in the right place. This guide will cover everything you need to know about iterators, from basic usage to advanced features, complete with examples and practical applications.

C++ Lists

Hello, C++ aficionados! Today, we're diving into one of the most fundamental and flexible components of the C++ Standard Template Library (STL): the list. If you're looking to enhance your understanding and utilization of lists in C++, you're in the right place. This guide will cover everything you need to know about lists, from basic usage to advanced features, complete with examples and practical applications.

C++ Sets

Hello, C++ enthusiasts! Today, we're diving into one of the most powerful and unique components of the C++ Standard Template Library (STL): the set. If you're looking to enhance your understanding and utilization of sets in C++, you're in the right place. This guide will cover everything you need to know about sets, from basic usage to advanced features, complete with examples and practical applications.

C++ Vectors

Welcome back, C++ enthusiasts! Today, we're going to take a deep dive into one of the most versatile and widely used components of the C++ Standard Template Library (STL): the vector. If you’re looking to enhance your understanding and utilization of vectors in C++, you’re in the right place. This guide will cover everything you need to know about vectors, from basic usage to advanced features, complete with examples and practical applications.

Data Structures and Algorithms

A comprehensive guide to Data Structures and Algorithms (DSA) including resources, books, courses, websites, blogs, YouTube channels, podcasts, interview preparation, competitive programming, practice problems, mock interviews, interview experiences, interview questions, interview tips, interview cheat sheets, and interview preparation misc.

Depth-First Search

This page explains Depth-First Search for traversing or searching tree or graph data structures.

Deque in Data Structures and Algorithms

In this tutorial, we will delve into deque (double-ended queue) in Data Structures and Algorithms. We'll explore what deque is, how it's used, and its implementation in various programming languages.

Dijkstra's Algorithm

This page explains Dijkstra's Algorithm for finding the shortest path in a graph, with code implementations and resources for further learning.

Edmonds-Karp Algorithm

This page explains the Edmonds-Karp Algorithm, an implementation of the Ford-Fulkerson method for computing the maximum flow in a flow network.

Floyd-Warshall Algorithm

This page explains the Floyd-Warshall Algorithm for finding the shortest paths between all pairs of vertices in a weighted graph.

Ford Fulkerson's Algorithm

This page explains the Ford Fulkerson's Algorithm for finding the maximum flow,residual flowin a network flow graph.

Functors in C++

Greetings, C++ enthusiasts! Today, we’re going to dive into the world of functors, also known as function objects. If you’re eager to enhance your C++ skills and learn how to create flexible, reusable functions, you’ve come to the right place. This comprehensive guide will cover everything you need to know about functors, from basic usage to advanced features, complete with practical examples.

Graphs

In this tutorial, we will learn about graphs in Data Structures and Algorithms. We will discuss what graphs are, how they are used, and why they are important.

Introduction to Data Structures and Algorithms

Data Structures and Algorithms (DSA) are the building blocks of computer programming. They are essential tools for any programmer to have in their toolkit. They help in writing efficient code and solving complex problems.

Introduction to Dynamic Programming

Dynamic Programming is mainly an optimization over plain recursion. Wherever we see a recursive solution that has repeated calls for the same inputs, we can optimize it using Dynamic Programming. The idea is to simply store the results of subproblems so that we do not have to re-compute them when needed later. This simple optimization reduces time complexities from exponential to polynomial.

Johnson's Algorithm

This page explains Johnson's Algorithm, an algorithm for finding shortest paths between all pairs of vertices in a weighted, directed graph.

Kahn's Algorithm

This page explains Kahn's Algorithm, an algorithm for topological sorting of a directed acyclic graph (DAG).

Kosaraju's Algorithm

This page explains Kosaraju's Algorithm for finding the no of strongly connected component in a graph.

Kruskal's Algorithm

This page explains Kruskal's Algorithm for finding the minimum spanning tree in a graph.

Kruskal's Graph Algorithm

Kruskal's algorithm is a popular method used to find the minimum spanning tree (MST) of a connected, undirected graph. A minimum spanning tree is a subset of the edges in a graph that connects all the vertices together, wihout any cycles, and with minimum possible total edge weight.

Linked Lists in Data Structures

In this tutorial, we will learn about linked lists in Data Structures and Algorithms. We will discuss what linked lists are, how they are used, and how they are different from arrays.

Prim's Algorithm

This page explains Prim's Algorithm for finding the minimum spanning tree in a graph.

Priority Queue in Data Structures and Algorithms

In this tutorial, we'll explore priority queues in Data Structures and Algorithms. We'll discuss what priority queues are, how they're used, and how to implement them in various programming languages.

Recursion

This page explains the concept of Recursion with detailed explanations, examples, and code implementations.

Sliding Window in Data Structures and Algorithms

Sliding Window problems are problems in which a fixed or variable-size window is moved through a data structure, typically an array or string, to solve problems efficiently based on continuous subsets of elements. This technique is used when we need to find subarrays or substrings according to a given set of conditions.

The Basics of C++ STL

Greetings, aspiring C++ wizards and seasoned coders alike! Today, we embark on an exciting journey through the magical realm of the C++ Standard Template Library, or STL. This powerful toolkit is the secret weapon in every C++ programmer's arsenal, offering a treasure trove of pre-written code that can make solving data structure and algorithm problems a breeze. So, grab your wand (or keyboard), and let’s dive into the world of STL, where efficiency meets elegance in C++ programming.

The Find Algorithm in C++

Hello, C++ enthusiasts! Today, we’re diving into one of the most fundamental and versatile components of the C++ Standard Library: the find algorithm. If you're looking to enhance your understanding and utilization of searching in C++, you're in the right place. This guide will cover everything you need to know about the find algorithm, from basic usage to advanced features, complete with examples and practical applications.

The Sort Algorithm in C++

Hello, C++ enthusiasts! Today, we’re diving into one of the most fundamental and powerful components of the C++ Standard Library: the sort algorithm. If you're looking to enhance your understanding and utilization of sorting in C++, you're in the right place. This guide will cover everything you need to know about the sort algorithm, from basic usage to advanced features, complete with examples and practical applications.

Topological Sorting

This page explains Topological Sorting, an algorithm for ordering vertices in a directed acyclic graph (DAG).

Z Algorithm

This is a solution for the string matching in linear time using Z algorithm.