Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 10 additions & 3 deletions docs/extra/Banker's Algorithm/Banker.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,15 @@
id: banker's-algorithm
title: Banker's Algorithm
sidebar_label: Banker's Algorithm
description: "It is a method used to avoid deadlocks in a system by checking if there exists a safe sequence of resource allocation for processes using safety checks based on available resources."
tags: [operating systems, algorithms, deadlock prevention]
description: >-
It is a method used to avoid deadlocks in a system by checking if there exists
a safe sequence of resource allocation for processes using safety checks based
on available resources.
tags:
- operating systems
- algorithms
- deadlock prevention
sidebar_position: 1
---

The Banker's Algorithm is a deadlock avoidance algorithm used in operating systems. It allocates resources to processes in a safe manner by verifying that the system can allocate resources in a way that avoids deadlocks. It ensures a "safe state" where resources can be allocated without risk of deadlock, based on maximum and current allocations.
Expand Down Expand Up @@ -234,4 +241,4 @@ else:

### Summary:

The Banker's Algorithm is crucial for systems requiring deadlock avoidance in resource allocation. By dynamically checking if resources can be safely allocated without risking deadlock, it helps maintain system stability, making it widely used in operating system designs.
The Banker's Algorithm is crucial for systems requiring deadlock avoidance in resource allocation. By dynamically checking if resources can be safely allocated without risking deadlock, it helps maintain system stability, making it widely used in operating system designs.
6 changes: 3 additions & 3 deletions docs/extra/Circular_array/Introduction.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
id: circular-array-introduction
sidebar_position: 1
title: Introduction of Circular
title: Introduction to Circular Array
sidebar_label: Introduction
description: "A B-tree is a self-balancing tree data structure that maintains sorted data for efficient insertion, deletion, and search operations."
tags: [b-tree, algorithms, problem-solving, DSA, data structure]
description: "An introduction to Circular Arrays (circular buffers), their key features, use cases, complexity analysis, and implementations in Python, Java, and C++."
tags: [circular-array, data-structures, arrays, algorithms]
---

## Introduction
Expand Down
10 changes: 8 additions & 2 deletions docs/extra/Divide and Conquer/Maximum-minimum.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,14 @@
id: maximum-minimum
title: Maximum-minimum
sidebar_label: Maximum-minimum
description: "Maximum minimum finding using divide and conquer approach to reduce the number of comparisions."
tags: [dsa, algorithms, divide and conquer]
description: >-
Maximum minimum finding using divide and conquer approach to reduce the number
of comparisions.
tags:
- dsa
- algorithms
- divide and conquer
sidebar_position: 2
---

### Definition:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
---
id: strassens-matrix-mutiplication
title: Strassen's-Matrix-Mutiplication
sidebar_label: Strassen's-Matrix-Mutiplication
description: "Strassen's matrix multiplication is an efficient algorithm that reduces the time complexity of multiplying two matrices."
tags: [dsa, algorithms, divide and conquer]
sidebar_label: Strassen's-Matrix-Mutiplication
description: >-
Strassen's matrix multiplication is an efficient algorithm that reduces the
time complexity of multiplying two matrices.
tags:
- dsa
- algorithms
- divide and conquer
sidebar_position: 3
---

### Problem Statement:
Expand Down
14 changes: 10 additions & 4 deletions docs/extra/Divide and Conquer/convex-hull.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
---
id: convex-hull
title: "Convex Hull Problem"
sidebar_label: "Convex Hull"
description: "This document provides an overview of the Convex Hull problem using the divide-and-conquer approach."
tags: [divide-and-conquer, computational-geometry, algorithms]
title: Convex Hull Problem
sidebar_label: Convex Hull
description: >-
This document provides an overview of the Convex Hull problem using the
divide-and-conquer approach.
tags:
- divide-and-conquer
- computational-geometry
- algorithms
sidebar_position: 1
---

<AdsComponent />
Expand Down
7 changes: 6 additions & 1 deletion docs/extra/Hashing/CollisionHandling.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,12 @@ id: collision-handling-in-hashing
sidebar_position: 5
title: Collision Handling in Hashing
sidebar_label: Collision Handling in Hashing
tags: [hashing, data structures]
tags:
- hashing
- data structures
description: >-
Detailed guide on Collision Handling in Hashing including core concepts,
algorithmic implementation, complexity analysis, and practice problems.
---

# Collision Handling in Hashing
Expand Down
14 changes: 14 additions & 0 deletions docs/extra/Hashing/Tigerhashing.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
---
id: tigerhashing
title: Tiger Hashing Algorithm
sidebar_label: Tiger Hashing Algorithm
description: >-
Detailed guide on Tiger Hashing Algorithm including core concepts, algorithmic
implementation, complexity analysis, and practice problems.
tags:
- programming
- dsa
- hashing
- tiger hashing algorithm
sidebar_position: 8
---
# Tiger Hashing Algorithm

## Overview
Expand Down
9 changes: 7 additions & 2 deletions docs/extra/Jump Search/Jump Search.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,13 @@
id: jump-search
title: Jump Search Algorithm
sidebar_label: Jump Search
description: "This post explores the use of Jump Search Algorithm. We'll provide code implementations C++."
tags: [searching, algorithms]
description: >-
This post explores the use of Jump Search Algorithm. We'll provide code
implementations C++.
tags:
- searching
- algorithms
sidebar_position: 1
---

Jump Search is a searching algorithm used to find an element in a sorted array. It works by jumping ahead by a fixed number of steps, rather than checking each element one by one (as in linear search). Once it finds an interval where the target element might be, it performs a linear search within that interval.
Expand Down
12 changes: 10 additions & 2 deletions docs/extra/KMP searching pattern/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,16 @@
id: kmp-searching-pattern
title: KMP Pattern Searching Algorithm - Complete Guide
sidebar_label: KMP Pattern Searching
description: A comprehensive guide to the Knuth-Morris-Pratt (KMP) string matching algorithm, including theory, analysis, and implementations in multiple languages
tags: [Algorithms, String Matching, Pattern Searching, Dynamic Programming]
description: >-
A comprehensive guide to the Knuth-Morris-Pratt (KMP) string matching
algorithm, including theory, analysis, and implementations in multiple
languages
tags:
- Algorithms
- String Matching
- Pattern Searching
- Dynamic Programming
sidebar_position: 1
---

# 🔍 KMP (Knuth-Morris-Pratt) Pattern Searching Algorithm
Expand Down
13 changes: 8 additions & 5 deletions docs/extra/Object Oriented Programming/Polymorphism.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
---
id: Polymorphism
title: "Polymorphism in Object-Oriented Programming"
sidebar_label: "Generate Details about Polymorphism"
description: "
Polymorphism is a core concept in object-oriented programming that allows objects of different classes to be treated as instances of the same class through a shared interface"
tags: [Polymorphism, OOPS, Java]
title: Polymorphism in Object-Oriented Programming
sidebar_label: Generate Details about Polymorphism
description: ' Polymorphism is a core concept in object-oriented programming that allows objects of different classes to be treated as instances of the same class through a shared interface'
tags:
- Polymorphism
- OOPS
- Java
sidebar_position: 8
---

## Polymorphism
Expand Down
14 changes: 10 additions & 4 deletions docs/extra/Object Oriented Programming/abstraction.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
---
id: abstraction
title: "Abstraction in Object-Oriented Programming"
sidebar_label: "Generate Details about Abstraction"
description: "Abstraction in Java is the process of hiding unnecessary implementation details from the user, focusing on exposing only the essential functionalities"
tags: [Abstraaction, OOPS, Java]
title: Abstraction in Object-Oriented Programming
sidebar_label: Generate Details about Abstraction
description: >-
Abstraction in Java is the process of hiding unnecessary implementation
details from the user, focusing on exposing only the essential functionalities
tags:
- Abstraaction
- OOPS
- Java
Comment thread
Aditya948351 marked this conversation as resolved.
sidebar_position: 2
---

<AdsComponent />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
id: classes-and-objects
id: classes-and-objects-oop
title: "Classes and Objects in OOP"
sidebar_label: Classes and Objects
sidebar_position: 2
Expand Down
13 changes: 11 additions & 2 deletions docs/extra/Queue/Problem-Practice.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,17 @@ id: Practice-Problems-on-queue
title: Queue Practice Problems
sidebar_label: Queue Practice Problems
sidebar_position: 9
Description: Here are some practice problems for queuing data structure divided into topic and width.
tags: [DSA, algorithms, Queue, dsa]
Description: >-
Here are some practice problems for queuing data structure divided into topic
and width.
tags:
- DSA
- algorithms
- Queue
- dsa
description: >-
Detailed guide on Queue Practice Problems including core concepts, algorithmic
implementation, complexity analysis, and practice problems.
Comment thread
Aditya948351 marked this conversation as resolved.
---

### Basic Queue Problems:
Expand Down
10 changes: 8 additions & 2 deletions docs/extra/Randomized Algorithm/Randomized-Quicksort.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,14 @@
id: randomized-quicksort
title: Randomized Quick Sort
sidebar_label: Randomized Quick Sort
description: "Randomized quicksort is a sorting algorithm that is an extension of quicksort, but with a random pivot selection"
tags: [dsa, algorithms, sorting]
description: >-
Randomized quicksort is a sorting algorithm that is an extension of quicksort,
but with a random pivot selection
tags:
- dsa
- algorithms
- sorting
sidebar_position: 1
---

### Problem Statement:
Expand Down
2 changes: 1 addition & 1 deletion docs/extra/Recursion-depths/Recursion.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
id: recursion-depth-overview
title: Recursion Depth Overview
sidebar_label: Overview
sidebar_label: Recursion Depth
sidebar_position: 5
description: An overview of recursion depth and its role in recursive algorithms.
tags: [recursion, algorithms, depth]
Expand Down
21 changes: 17 additions & 4 deletions docs/extra/Recursion/Ackerman.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,22 @@
---
id: ackerman-function
id: ackerman-function
title: Ackerman Function Using Recursion
sidebar_label: Generate Ackerman Function value
description: "The Ackermann function is a recursive function that grows incredibly fast and is often used to demonstrate the power and limitations of recursion. Defined with two arguments,m and n, it exhibits rapid growth even for small inputs, making it a classic example in theoretical computer science. Unlike simpler recursive functions, it is non-primitive recursive, meaning it cannot be expressed using basic loops. This function challenges computational limits, often exceeding recursion stack sizes in practical programming environments. Its main use is in studying recursion, computability, and the limits of algorithms."
tags: [Ackerman , recursion, dsa]
sidebar_label: Generate Ackerman Function value
description: >-
The Ackermann function is a recursive function that grows incredibly fast and
is often used to demonstrate the power and limitations of recursion. Defined
with two arguments,m and n, it exhibits rapid growth even for small inputs,
making it a classic example in theoretical computer science. Unlike simpler
recursive functions, it is non-primitive recursive, meaning it cannot be
expressed using basic loops. This function challenges computational limits,
often exceeding recursion stack sizes in practical programming environments.
Its main use is in studying recursion, computability, and the limits of
algorithms.
tags:
- Ackerman
- recursion
- dsa
sidebar_position: 1
---
## Ackerman Function Via Recursion

Expand Down
13 changes: 11 additions & 2 deletions docs/extra/Recursion/Count-all-subsequences-with-sum-K.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,17 @@
id: count-all-subsequences-with-sum-k-problem-dsa
title: Perfect sum
sidebar_label: Perfect sum
description: "The Perfect Sum problem involves finding all subsets of an array that sum up to a given target sum. The solution uses recursion and dynamic programming to efficiently count subsets with a specified sum while handling large values using modulo."
tags: [perfect-sum, recursion, dynamic-programming, dsa]
description: >-
The Perfect Sum problem involves finding all subsets of an array that sum up
to a given target sum. The solution uses recursion and dynamic programming to
efficiently count subsets with a specified sum while handling large values
using modulo.
tags:
- perfect-sum
- recursion
- dynamic-programming
- dsa
sidebar_position: 3
---

## Perfect Sum Problem | Count All Subsets with Sum k
Expand Down
8 changes: 6 additions & 2 deletions docs/extra/Recursion/GrayCodeGeneration.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@
id: Gray Code Generation
Comment thread
Aditya948351 marked this conversation as resolved.
title: Gray Code Generation Using Recursion
sidebar_label: Generate Gray Code
description: "Gray code generation is a process of creating a sequence of binary numbers in which two successive values differ in only one bit. This unique property is useful in various applications, such as minimizing errors in digital communication and ensuring smooth transitions in analog-to-digital converters. The generation can be efficiently achieved using a recursive algorithm, which constructs Gray codes for 𝑛 by leveraging the codes generated for 𝑛−1 bits. The resulting Gray code sequences maintain a structured format, making them ideal for error detection and correction in digital systems"
tags: [Gray-Code, recursion, dsa]
description: "Gray code generation is a process of creating a sequence of binary numbers in which two successive values differ in only one bit. This unique property is useful in various applications, such as minimizing errors in digital communication and ensuring smooth transitions in analog-to-digital converters. The generation can be efficiently achieved using a recursive algorithm, which constructs Gray codes for \U0001D45B by leveraging the codes generated for \U0001D45B−1 bits. The resulting Gray code sequences maintain a structured format, making them ideal for error detection and correction in digital systems"
tags:
- Gray-Code
- recursion
- dsa
sidebar_position: 6
---

## Gray Code Generation Via Recursion
Expand Down
13 changes: 11 additions & 2 deletions docs/extra/Recursion/Letter-Combinations-of-a-Phone-number.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,17 @@
id: Letter-Combinations-problem-dsa
title: Letter Combinations of a Phone Number
sidebar_label: Letter Combinations
description: "The Letter Combinations of a Phone Number problem involves generating all possible letter combinations that a string of digits (2-9) can represent based on a standard telephone keypad. This problem is often solved using recursion and backtracking."
tags: [letter-combinations, backtracking, recursion, dsa]
description: >-
The Letter Combinations of a Phone Number problem involves generating all
possible letter combinations that a string of digits (2-9) can represent based
on a standard telephone keypad. This problem is often solved using recursion
and backtracking.
tags:
- letter-combinations
- backtracking
- recursion
- dsa
sidebar_position: 10
---

## Letter Combinations of a Phone Number | Generate All Combinations of Letters Based on Digits
Expand Down
13 changes: 10 additions & 3 deletions docs/extra/Recursion/Reversing_String.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,15 @@
id: reverse-string-recursion
title: Reverse String Using Recursion
sidebar_label: Reverse String
description: "The Reverse String problem involves reversing a given string using a recursive function. The solution efficiently utilizes recursion to achieve the desired result without using any iterative constructs."
tags: [reverse-string, recursion, dsa]
description: >-
The Reverse String problem involves reversing a given string using a recursive
function. The solution efficiently utilizes recursion to achieve the desired
result without using any iterative constructs.
tags:
- reverse-string
- recursion
- dsa
sidebar_position: 14
---

## Reverse String Using Recursion
Expand Down Expand Up @@ -79,4 +86,4 @@ public class Solution {
System.out.println("Reversed string: " + solution.reverseString(str));
}
}
```
```
21 changes: 17 additions & 4 deletions docs/extra/Recursion/SmawkAlgorithm.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,22 @@
---
id: smawk-algorithm
id: smawk-algorithm
title: Smawk Algorithm Using Recursion
sidebar_label: Generating Minima in matrix row
description: "The SMAWK algorithm is an efficient method for finding row minima in totally monotone matrices, a specific type of matrix where entries decrease or stay constant along each row and column. Developed for optimizing complex search operations, this algorithm leverages a unique recursive approach, reducing computation time to O(m+n) for an m×n matrix, making it ideal for applications in computational geometry, dynamic programming, and machine learning. With SMAWK, developers gain a powerful tool for solving matrix-based problems more effectively, significantly improving the performance of algorithms that depend on finding minimum values in large, structured datasets"
tags: [Smawk , recursion, dsa]
sidebar_label: Generating Minima in matrix row
description: >-
The SMAWK algorithm is an efficient method for finding row minima in totally
monotone matrices, a specific type of matrix where entries decrease or stay
constant along each row and column. Developed for optimizing complex search
operations, this algorithm leverages a unique recursive approach, reducing
computation time to O(m+n) for an m×n matrix, making it ideal for applications
in computational geometry, dynamic programming, and machine learning. With
SMAWK, developers gain a powerful tool for solving matrix-based problems more
effectively, significantly improving the performance of algorithms that depend
on finding minimum values in large, structured datasets
tags:
- Smawk
- recursion
- dsa
sidebar_position: 15
---
## Smawk Algorithm Via Recursion

Expand Down
Loading
Loading