# Algorithms

## Depth First Search (DFS)

Here, We will discuss about Depth First Search (DFS), their algorithms and also explain advantages, disadvantages, time complexity and their applications. Graph Traversals Graph traversal means visiting every vertex and edge exactly once in a well-defined order. During a traversal, it is important that you track which vertices have been visited. The most common way …

Here, We will discuss about Breadth First Search (BFS), their algorithms and also explain advantages, disadvantages, time complexity and their applications. Graph Traversals Graph traversal means visiting every vertex and edge exactly once in a well-defined order. During a traversal, it is important that you track which vertices have been visited. The most common way …

## Graph Algorithms

Here, We will discuss about Graph Algorithms, types of nodes and graphs and also explain Graph Representation like Adjacency Matrix, Adjacency List and Graph Traversals like DFS and BFS. What is Graph? A Graph is a flow structure that represents the relationship between various objects. In other words, A graph is a pair (V,E) where …

## Dynamic Programming

Here, We will discuss about Dynamic Programming, their strategy, properties and approaches like memoization and tabulation and their applications. What is Dynamic Programming? Dynamic Programming is a powerful technique to solve a complicated problem by breaking it down into simpler subproblems. The idea of dynamic programming is to avoid making redundant method calls. In Divide …

## Greedy Algorithms

Here, We will discuss about Greedy algorithm, their element and Characteristics, advantages and disadvantages, and their applications. What is Greedy Algorithm? A Greedy Algorithm is a simple, intuitive algorithm that is used in optimization problem. It is designed to achieve optimum solution for a given problem. This algorithm builds up a solution by choosing the …

## Divide and Conquer Algorithms

Here, We will discuss about divide and conquer algorithms, their strategy, pros and cons of divide and conquer, applications of divide and conquer algorithm. What is Divide and Conquer Algorithm ? Some problems failed to provide optimal solutions. Among those problems, some are easily solved by using the Divide and Conquer technique. Divide and Conquer …

## Binary Search

Here, We discuss about Binary Search, their implementation in C, time and space complexity and its applications. What is Binary Search? Binary Search is the most popular searching algorithm. It is efficient and most commonly used to solve problems. The algorithm based on the idea that finding an element’s position in a sorted array. Binary …

## Linear Search

Here, We discuss about Linear Search, their implementation in C, time and space complexity and its applications. What is Linear Search? Linear Search is the simplest searching algorithm. It searches for an element in the list in sequential order. Linear search is used on a collection of items. We start at one end and check …

## Heap Sort

Here, We will discuss about Heap Sort in C, their algorithm, implementation code in C, time and space complexity, and their applications. What is Heap Sort? Heap Sort is a comparison-based sorting algorithm. This sorting algorithm has more favorable worst-case O(n log n) runtime. Heap Sort is an in-place algorithm but is not a stable …

## Bucket Sort

Here, We will discuss about Bucket Sort in C, their algorithm, implementation code in C, time and space complexity, and their applications. What is Bucket Sort? Bucket Sort is a comparison sort algorithm. Like Counting sort, Bucket Sort also imposes restrictions on the input to improve the performance. The algorithm based on the idea that …

## Shell Sort

Here, We will discuss about Shell Sort in C, their algorithm, implementation code in C, time and space complexity, and their applications. What is Shell Sort? Shell Sort also called diminishing increment sort. This sorting algorithm is a generalization of insertion sort. Shell sort is efficient for medium size lists. For bigger lists, the algorithm …

## Quick Sort

Here, We will discuss about Quick sort in C, their algorithm, implementation in C, time & space complexity and their applications. What is Quick Sort? Quick Sort is one of the famous comparison-based sorting algorithms based on divide and conquers algorithmic technique. It uses recursive calls for sorting the element. The algorithm starts by picking …

## Merge Sort

Here, We will discuss about Merge Sort in C, their algorithm, implementation code in C, time and space complexity, and their applications. What is Merge Sort? Merge Sort is a divide and conquer algorithms based on the idea of breaking down a list into several sub-lists. The algorithm starts breaking down a list into sub-lists …

## Bubble Sort

Here, We will learn about bubble sort in C, their algorithm, implementation in C, time & space complexity and their applications. What is Bubble Sort? Bubble Sort is the simplest sorting algorithm. It compares all the elements one by one and sorts them based on their values. The algorithm is based on idea of repeatedly …

## Selection Sort

Here, We will discuss about selection sort in C, their algorithm, implementation code in C, time and space complexity and their advantages. What is Selection Sort? Selection Sort is an in-place sorting algorithm. It works well on small files. It is used for storing the files with very large values and small keys. The algorithm …