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
– problems from Cormen ...
– two programming assignments
• 4 Quizes 1/3
• 4520 Final 1/3
• 6520 Project 1/3
Home Work
• Problem sets
– weekly
– handed in/out Tuesdays (usually)
– Extra-credit problems!
• Due next Tuesday
– 1.4-1 p.17 / 1.2-2 p.13
– 1.4-2 p.17 / 1.2-2 p.13
Sorting
• Input: sequence of numbers a1 , a2 ,..., an
Output: a sorted sequence a1 a2 ... an
• 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
How it works
• Insertion-Sort
for j = 2 to n do
current = A[j] next current
i=j-1 go left
while i > 0 A[i] & A[i] > current do find place for current
A[i + 1] = A[i] shift sorted right
i=i-1 go left
A[i + 1] = current put current in place
Running Time
• Depends on
– input size
– input quality (partially ordered)
• Kinds of analysis
– Worst case (standard)
– Average case (sometimes)
– Best case (never)
Asymptotic Analysis
• Ignore machine dependent constants
• Look at growth of T(n) while n
• O - notation
• O(n^3)>O(n^2)
Insertion Sort Analysis
• Worst Case O(n^2)
• Average Case O(n^2)
• Can we do better?
• New paradigms