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

Analysis and Design of Algorithms: - An Algorithm Is A Method of Solving Problem (On A Computer) - Problem Example

This document provides an overview of an algorithms course. It will cover general algorithmic methods like divide and conquer, greedy algorithms, and dynamic programming. It will also cover specific combinatorial problems, computational complexity, and the analysis of common algorithms. Students will complete homework problems, quizzes, a final exam, and optionally a project. Grading will be based on homework, quizzes, and exams. Homework will involve weekly problem sets from the textbook Introduction to Algorithms by Cormen, Leiserson, Rivest.

Uploaded by

Ankit Mathur
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

Analysis and Design of Algorithms: - An Algorithm Is A Method of Solving Problem (On A Computer) - Problem Example

This document provides an overview of an algorithms course. It will cover general algorithmic methods like divide and conquer, greedy algorithms, and dynamic programming. It will also cover specific combinatorial problems, computational complexity, and the analysis of common algorithms. Students will complete homework problems, quizzes, a final exam, and optionally a project. Grading will be based on homework, quizzes, and exams. Homework will involve weekly problem sets from the textbook Introduction to Algorithms by Cormen, Leiserson, Rivest.

Uploaded by

Ankit Mathur
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 10

Analysis and Design of

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

You might also like