Analysis and Design of Algorithms: - An Algorithm Is A Method of Solving Problem (On A Computer) - Problem Example
Analysis and Design of Algorithms: - An Algorithm Is A Method of Solving Problem (On A Computer) - Problem Example
Algorithms
An algorithm is a method of solving problem
(on a computer)
Problem example:
given a set of points on the plane
find the closest pair
Algorithm:
find distance between all pairs
Can we do it faster?
Combinatorial Problems
Closest pair
O(n^2) algorithm
TSP
O(n!) algorithm
too slow
difficult problem
Course Overview
General algorithmic methods
divide and conquer, greedy algorithms, dynamic
programming
Data structures
hashing, priority queues, binary search trees, binomial
heaps
Combinatorial problems
MST, TSP, Vertex/Set Cover, Matrix
Computational Complexity
NP-completeness, reducibility, approximation
Cormen-Leiserson-Rivest
Introduction to Algorithms
Grading
Home work
1/3
4 Quizes
4520 Final
6520 Project
1/3
1/3
1/3
Home Work
Problem sets
weekly
handed in/out Tuesdays (usually)
Extra-credit problems!
Sorting
Input: sequence of numbers
Output: a sorted sequence
Insertion-Sort
for j = 2 to n do
current=A[j]
i=j-1
while i > 0 & A[i] > current do
A[i + 1] = A[i]
i=i-1
A[i + 1] = current
a1 , a2 ,..., an
a1 a2 ... an
How it works
Insertion-Sort
for j = 2 to n do
current = A[j]
i=j-1
while i > 0 A[i] & A[i] > current do
A[i + 1] = A[i]
i=i-1
A[i + 1] = current
next current
go left
find place for current
shift sorted right
go left
Running Time
Depends on
input size
input quality (partially ordered)
Kinds of analysis
Worst case (standard)
Average case (sometimes)
Best case
(never)
Asymptotic Analysis