# Month: January 2021

## 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 …

## Breadth First Search (BFS)

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 …

## 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 …

## 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 …

## 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 …

## Radix Sort

Here, We will discuss about Radix Sort in C, their algorithm, implementation code in C, time and space complexity, and their applications. What is Radix Sort? Similar to Counting sort and Bucket sort, Radix Sort is a linear sorting algorithm. The algorithm based on idea that sorting the elements by first grouping the individual digits …

## Counting Sort

Here, We will discuss about Counting Sort in C, their algorithm, implementation code in C, time and space complexity, and their applications. What is Counting Sort? Counting Sort is a sorting algorithm but not a comparison sort algorithm. The algorithm based on idea that sorting the elements of an array by frequencies of distinct/unique elements …

## Insertion Sort

Here, We will learn about insertion sort in C, their algorithm, implementation code in C, time and space complexity and advantages.. What is Insertion sort? Insertion Sort is a simple and efficient comparison sort. It works similarly as we sort cards in our hand in a card game. The algorithm based on the idea that …

## 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 …