 # Introduction to Algorithm Analysis and Design

Master the concepts in algorithm analysis and design comprehensively through hands-on coding. Designed for learners who wants to become a great programmer and strengthen their algorithm designing skills, an essential computer science concept.

##### 365 days course access

Live instructor-led online classes

##### Industry-based projects

Master problem solving using algorithmic design strategies.

##### E-box Job Assistant

Get noticed by the top hiring companies ###### Guide from “Amphi”

The Super teacher Includes:

• 2 hours of lecture Videos
• 90 hands-on practice exercises
• 73 Assessment exercises
• 275 code analysis exercises
• 204 knowledge based questions
• 10 Live connect sessions
(Master classes)

### Introduction to Algorithm Analysis and Design

This course provides a solid foundation in algorithm analysis and design. Specifically, the learning outcomes of this course include, basic knowledge of computational complexity, ability to analyze asymptotic runtime complexity of algorithms and ability to understand and design algorithms using Divide and Conquer Strategy, Greedy Strategy, Dynamic Programming, Backtracking and Branch and Bound Design Strategy.

COURSE OBJECTIVES

Upon successful completion of the course, the learner will be able to :
• Comprehend the given problem and predict the algorithmic strategy for solving them
• Analyse the complexity of the given algorithm with respect to time and space
• Find different methods to reduce the complexity of the algorithm by using optimised strategies
• Optimise the problem by dividing the dataset, solving the smaller dataset and combining the local solutions to form the global solution, using Divide and Conquer strategy
• Apply straight forward approach to solve the problem without thinking about the past and future, using Greedy Strategy
• Reduce the time complexity of the algorithm greatly just by including a temporary memory (either a variable or a 1D array or a 2D array), to store the intermediate optimal solution, using Dynamic Programming Strategy
• Reduce the time complexity of any optimisation problem that consumes non-polynomial time to some extent, using Backtracking and Branch and Bound strategies
• Solve same problem with different constraints with respect to time and space as mentioned in the problem statement

## Course Content

### Introduction to Algorithms

An algorithm is a well-defined procedure that allows a computer to solve a problem. Another way to describe an algorithm is a sequence of unambiguous instructions. The use of the term 'unambiguous' indicates that there is no room for subjective interpretation. In this module you will get an introduction about the different design strategies in programming.

• 1 Video
• 5 Hours
• 41 Problems

### Algorithm Analysis - I

The complexity of the algorithm is analysed with respect to time and space. In this module, you will learn about analysing the complexity of a given problem with respect to time and space.

• 1 Video
• 8 Hours
• 32 Problems

### Algorithm Analysis - II

This is the continuation of the previous module. In this module you will see some more examples on analysing the time and space complexity.

• 1 Video
• 8 Hours
• 34 Problems

### Searching Algorithms

A search algorithm is any algorithm which solves the search problem, namely, to retrieve information stored within some data structure, or calculated in the search space of a problem domain. In this module, you will learn the working of the searching algorithms like, linear search and binary search. You will also analyse the complexities of the algorithm.

• 1 Video
• 8 Hours
• 43 Problems

### Sorting Algorithms

A sorting algorithm is an algorithm that puts elements of a list in a certain order. The most frequently used orders are numerical order and lexicographical order. In this module, you will learn how the given data is sorted using the various sorting algorithms. You will also analyse the complexities of the algorithm.

• 3 Videos
• 5 Hours
• 34 Problems

### Design Strategies - Introduction

Following a strategy to solve a problem will make the problem simple as well as reduce the complexity of the solution. In this module, you will learn the introduction to the five different design strategies.

• 1 Video
• 5 Hours
• 41 Problems

### Divide and Conquer Design Strategy

Divide and conquer is an algorithm design paradigm based on multi-branched recursion. A divide and conquer algorithm works by recursively breaking down a data-set into two or more sub-data-sets, until these become simple enough to be solved directly . In this module you will learn how to solve problems using this strategy.

• 1 Video
• 6 Hours
• 74 Problems

### Divide and Conquer Design Strategy - II

This module the continuation of the previous module. In this module, you will learn and solve few more example problems about this strategy.

• 1 Video
• 6 Hours
• 57 Problems

### Greedy Strategy - I

A greedy algorithm is an algorithmic paradigm that follows the problem solving heuristic of making the locally optimal choice at each stage with the intent of finding a global optimum. In many problems, a greedy strategy does not usually produce an optimal solution, but nonetheless a greedy heuristic may yield locally optimal solutions that approximate a globally optimal solution in a reasonable amount of time. In this module you will learn how to solve problems using this strategy.

• 1 Video
• 5 Hours
• 35 Problems

### Greedy Strategy - II

This module the continuation of the previous module. In this module, you will learn and solve few more example problems about this strategy.

• 1 Video
• 5 Hours
• 40 Problems

### Dynamic Programming - I

Dynamic programming refers to simplifying a complicated problem by breaking it down into simpler sub-problems in a recursive manner. In this module you will learn how to solve problems using this strategy.

• 1 Video
• 6 Hours
• 65 Problems

### Dynamic Programming - II

This module the continuation of the previous module. In this module, you will learn and solve few more example problems about this strategy.

• 1 Video
• 6 Hours
• 54 Problems

### Backtracking - I

Backtracking strategy is defined as a general algorithmic technique that considers searching every possible combination in order to solve an optimization problem. In this module you will learn how to solve problems using this strategy.

• 1 Video
• 4 Hours
• 25 Problems

### Backtracking - II

This module the continuation of the previous module. In this module, you will learn and solve few more example problems about this strategy.

• 1 Video
• 5 Hours
• 49 Problems

### Branch and Bound Strategy

Branch and bound is an algorithm paradigm that basically relies on a combinatorial approach and is hence used for combinatorial optimization problems. For example, the knapsack problem. In this module you will learn how to solve problems using this strategy.

• 1 Video
• 5 Hours
• 32 Problems

### String based problems

In this module, you will learn about solving various string based problems that are used to try out different methods to reduce the complexity with respect to time and space.

• 1 Video
• 5 Hours
• 6 Problems

## Get in Touch with Us

Achalpreet - 8826698674