You are on page 1of 2

CSE230:DESIGN AND ANALYSIS OF ALGORITHMS

L:3 T:0 P:2 Credits:4

Course Outcomes: Through this course students should be able to

CO1 :: Describe the basic techniques of analyzing the algorithms using asymptotic notations.

CO2 :: Determine how to computer the complexity of algorithms.

CO3 :: Understand the algorithms of various sorting techniques.

CO4 :: Illustrate the use of divide and conquer technique by using quick sort and merge sort
algorithms.

CO5 :: Explain greedy technique to solve the problems in an optimized way.

CO6 :: Discuss the optimized dynamic programming technique with relevant examples.

Unit I
Algorithm Analysis : Parameters of Algorithm Efficiency, Complexity functions, Asymptotic
notations, Big O functions, Time vs Space complexity trade off, Run time analysis of various
algorithms, Fibonacci sequence, Recursion, Industry relevant examples.
Unit II
Searching & Sorting I : Introduction to Searching, Linear Search and its Java implementation, Time
Complexity of Linear Search, Divide & Conquer algorithms, Binary Search and its Java
implementation, Time Complexity of Binary Search
Unit III
Searching & Sorting II : Bubble Sort and its Java implementation, Time Complexity of Bubble Sort,
Selection Sort and its Java implementation, Time Complexityof Selection Sort, Insertion Sort and its
Java implementation, Time Complexity of Insertion Sort, Insertion Sort vs Selection Sort
Unit IV
Searching & Sorting III : Merge Sort and its Java implementation, Time Complexity of Merge Sort,
Quick Sort and its Java implementation, Quick Sort demonstration through cards game and Doubt
resolution, Comparison of SortingAlgorithms, Sample problem (Leaderboard)
Unit V
Greedy Algorithms : Greedy Algorithms, Advantages & Disadvantages of greedy algorithms,
Scheduling Problem, The Depth Problem, Knapsack Problem, Fractional Knapsack Problem, Greedy
algorithms: Industry problem & demonstration
Unit VI
Dynamic Programming : Introduction to Dynamic Programming Approach the Coin Exchange
Problem, Tabulation, Pseudo code, Java Code for the Coin Exchange Problem, Space Optimization,
Revisiting the Fibonacci Sequence, Practice Exercise I and II, Edit Distance Problem, Solving the Edit
Distance Problem, Introduction to Spellchecker, Longest Increasing Subsequence (LIS)

List of Practicals / Experiments:

1.
• Program to demonstrate concept of recursions with problem of tower of Hanoi

2.
• Program to find if an integer array can be partitioned into 2 subsets such that both the subsets have
equal sum.
3.
• Program to find the minimum absolute difference between any two elements in each integer unsorted
array.
4.
• Program to find the position of an element in a sorted array of infinite numbers.

5.
• Program to find two elements such that their sum is closest to zero in an array containing both
positive and negative integers.

Session 2022-23 Page:1/2


6.
• Program to determine the sum of the contiguous subarray with the maximum sum.

Text Books:
1. INTRODUCTION TO THE DESIGN & ANALYSIS OF ALGORITHMS by ANANY LEVITIN,
PEARSON
References:
1. ALGORITHM DESIGN by JON KLEINBERG AND EVA TARDOS, PEARSON

Session 2022-23 Page:2/2

You might also like