Upload
buck-ford
View
213
Download
0
Embed Size (px)
Citation preview
1
BIM304: Algorithm Design
• Time: Friday 9-12am• Location: B4• Instructor: Cuneyt Akinlar• Grading
– 2 Midterms – 20% and 30% respectively– Final – 30%– Projects – 15%
2
What’s this course about?
• An algorithm (program) is a well-defined computational procedure that – takes some values (data) as “input” – produces some result as “output”
• Many different algorithms may correctly solve a given task– But choice of a particular algorithm may have
enormous impact on time and memory used– Time versus space tradeoffs are very common
ALGORITHMInput (DATA) Output (Results)
3
Types of Algorithms• Iterative Algorithms• Recursive (Divide & Conquer) Algorithms• Randomized Algorithms• Greedy Algorithms• Dynamic Programming• Approximation Algorithms• Genetic Algorithms
4
Course Goals• Understand the mathematical
fundamentals needed to analyze algorithms
• Learn how to compare the efficiency of different algorithms in terms of running time and memory usage
• Study a number of standard algorithms for data manipulation and learn to use them for solving new problems
5
Course Outline• Asymptotic Notations
– Analysis of Iterative and Recursive Algorithms
• Sorting and Selection– Basic Sorting Algorithms– Recursive Sorting Algorithms– Selection and Medians
• Heaps & Heap Sort• Linear Time Sorting
– Counting Sort & Radix Sort
• Advanced Search Trees: B Trees
6
Course Outline (cont)• Disjoint Set (Union/Find) Data Structure• Graphs
– Definition, Representation
• Graph Traversal Algorithms– BFS, DFS
• Graph Algorithms– Topological Sort– Minimum Spanning Trees– Shortest Paths
• Introduction 2 Spatial Data Structures– KD-rees