0% found this document useful (0 votes)
16 views

Design and Analysis of Algorithms: Fall-2020

This document outlines the key aspects of a course on design and analysis of algorithms. It will cover algorithmic concepts and techniques, analysis of algorithm efficiency using metrics like time and storage, and applications of algorithms to problems in areas like sorting, searching, and bioinformatics. Students will be evaluated based on quizzes, assignments, a project, and midterm and final exams. Core topics will include algorithm definition, analysis techniques, running time analysis of sorting algorithms like insertion sort, and developing new algorithms using techniques taught in the course.

Uploaded by

Areej Awan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

Design and Analysis of Algorithms: Fall-2020

This document outlines the key aspects of a course on design and analysis of algorithms. It will cover algorithmic concepts and techniques, analysis of algorithm efficiency using metrics like time and storage, and applications of algorithms to problems in areas like sorting, searching, and bioinformatics. Students will be evaluated based on quizzes, assignments, a project, and midterm and final exams. Core topics will include algorithm definition, analysis techniques, running time analysis of sorting algorithms like insertion sort, and developing new algorithms using techniques taught in the course.

Uploaded by

Areej Awan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 15

Design and Analysis of

Algorithms
Fall-2020

Air University
Design and Analysis of Algorithms
 Online course content & coordination
 Google Classroom
Text book and reference material

 Introduction to Algorithms (Text Book)


Thomas H. Cormen, Charles E. Leiserson,
Ronald L. Rivest, and Clifford Stein
Third Edition, MIT Press

 Any web material (consult authentic material e.g.


on some university’s website)
Grading Criteria (Marks Distribution)

 Tentative grading criteria is as follows:


 Quizzes (10%)
 Assignments (10%)
 Project (10%)
 First Mid Term Exam (30%)
 Final Exam (40%)
Algorithm

 An algorithm is a well-defined and effective


sequence of computation steps that takes some
value, or set of values, as input and produces
some value, or set of values, as output.
 How to quantify this effectiveness or efficiency of
an algorithm ???
 Answer is Analysis of Algorithm
What’s Analysis of Algorithms
 The theoretical study of algorithm’s performance and resource
usage.
 Other important features of an algorithm are
 modularity
 correctness
 maintainability
 functionality
 robustness
 user-friendliness
 programmer time
 Simplicity
 extensibility
 Reliability
 During this course our focus will be on the performance and the
storage requirements.
6
Common about algorithms

 There are many candidate solutions, most of


which are not what we want, finding one that
we do want can present quite a challenge.

 There are practical applications (its not just


mathematical exercises to develop
algorithms.)
Why study algorithms ?
 If you are given two brand new algorithms from two
different companies to perform sorting. Which one
you would go for ? Lets assume companies are not
willing to install the software at your end for testing
but are willing to share their pseudo-code with you.
 You need an objective analysis of both the algorithms
before you can choose one. Like:-
 Scalability of algorithms
 Real life constraints like time and storage
 Behavior of the algorithms
 Quickness (speed is fun)

8
Example: sorting

 Input: A sequence of n numbers <a1,a2,a3…


an>
 Output: A permutation (re-ordering)
<b1,b2,b3…bn> of the input sequence such
that b1<b2<b3…<bn
Example Sorting
(Insertion Sort)
Insertion-Sort(A,n)  A[1 … n]
for j  2 to n
do key  A[j]
i  j-1
While i > 0 and A[i] > key
do A[i+1]  A[i]
i  i -1
A[i+1] = key
1 i j n

key
sorted

10
Running time of Insertion Sort

 The running time depends on the input: an


already sorted sequence is easier to sort.
 Parameterize the running time by the size of
the input,
 short sequences are easier to sort than long ones.
 Generally, we seek upper bounds on the
running time, because everybody likes a
guarantee.

11
Problems solved by algorithms

 Sorting/searching are by no mean the only


computational problem for which algorithms
have been developed.
 Otherwise, we wouldn’t have the whole
course on this topic
 Practical application of algorithms are
ubiquitous and include the following
examples
Practical applications

 Internet world
 Electronic commerce
 Manufacturing and other commercial settings
 Shortest path
 Matrices multiplication order
 DNA sequence matching
Technique
 Can’t get a “cookbook” for algorithms?
 Many problems you will encounter don’t have
any published algorithm.
 So need to learn “techniques” of algorithms
design and analysis
 So you develop algorithms in your own, show
that they give correct answer and understand
their efficiency.
 We will learn several such techniques in later
part of this course.
Correct-ness of an Algorithm

 Loop Invariant.
 Decision Tree Model(comparing elements for
sorting)

You might also like