ch08-320201 algorithms and data structures · 2016-05-13 · 320201: fundamental cs i (algorithms...
TRANSCRIPT
![Page 1: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/1.jpg)
Visualization and Computer Graphics LabJacobs University
CH08-320201Algorithms and Data Structures
Prof. Dr.-Ing. Lars Linsen
Jacobs UniversitySpring 2016
![Page 2: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/2.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 2
Visualization and Computer Graphics LabJacobs University
0. Introduction
![Page 3: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/3.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 3
Visualization and Computer Graphics LabJacobs University
0.1 Syllabus and Organization
![Page 4: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/4.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 4
Visualization and Computer Graphics LabJacobs University
Course website
http://www.faculty.jacobs-university.de/llinsen/teaching/320201.htm
(accessible through CampusNet)
![Page 5: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/5.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 5
Visualization and Computer Graphics LabJacobs University
Content
• This course introduces a basic set of data structures and algorithms that form the basis of almost all computer programs. The data structures and algorithms are analyzed in respect to their computational complexity with techniques such as worst case and amortized analysis.
• Topics: Fundamental data structures (lists, stacks, trees, hash tables), fundamental algorithms (sorting, searching, graph traversal).
![Page 6: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/6.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 6
Visualization and Computer Graphics LabJacobs University
Prerequisites
![Page 7: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/7.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 7
Visualization and Computer Graphics LabJacobs University
Lectures
• Times: – Tuesday 11:15am–12:30am, – Thursday 9:45am–11:00am.
• Location: Research III Lecture Hall
![Page 8: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/8.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 8
Visualization and Computer Graphics LabJacobs University
Instructor
• Lars Linsen• Office: Res I, 128.• Phone: 3196• E-Mail: l.linsen [@jacobs-university.de]• Office hours: by appointment
![Page 9: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/9.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 9
Visualization and Computer Graphics LabJacobs University
Tutorials
• Times: tbd• Location: tbd• TAs: Rubin Deliallisi, Joana Halili, Jinbo Zhang.
![Page 10: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/10.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 10
Visualization and Computer Graphics LabJacobs University
Assignments
• The homework assignments include theoretical and practical problems that tackle topics from the lectures.
• The homework assignments are handed out on a regular basis.• Solutions that are handed in late lead to reduced credit (-15%
per day). • Exceptions are only made with an official excuse. • With an official excuse of up to 4 days, the deadline for the
respective homework is extended by the same amount of days. • With an official excuse of more than 4 days, the respective
homework will not count.• Handing in via JGrader.
![Page 11: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/11.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 11
Visualization and Computer Graphics LabJacobs University
Exams
• There will be one midterm and a final exam. • There are no quizzes planned.
![Page 12: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/12.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 12
Visualization and Computer Graphics LabJacobs University
Grading
• Homework assignments contribute 35% to the overall grade.
• The midterm exam contributes 25%.• The final exam contributes 40%.
![Page 13: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/13.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 13
Visualization and Computer Graphics LabJacobs University
Dates – Lectures (1)
Lecture 1317.03.Lecture 1215.03.Week 7Lecture 1110.03.Lecture 1008.03.Week 6Lecture 903.03.No lecture - off campus01.03.Week 5Lecture 825.02.Lecture 723.02.Week 4Lecture 618.02.Lecture 516.02.Week 3Lecture 411.02.Lecture 309.02.Week 2Lecture 204.02.Lecture 102.02.Week 1
![Page 14: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/14.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 14
Visualization and Computer Graphics LabJacobs University
Dates – Lectures (2)
Lecture 2512.05.Lecture 2410.05.Week 14Holiday05.05.Lecture 2303.05.Week 13Lecture 2228.04.Lecture 2126.04.Week 12Lecture 2021.04.Lecture 1919.04.Week 11Lecture 1814.04.Lecture 1712.04.Week 10Lecture 1607.04.Lecture 1505.04.Week 9Lecture 1431.03.Midterm29.03.Week 8
![Page 15: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/15.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 15
Visualization and Computer Graphics LabJacobs University
Dates - Exams
• Midterm: March 29, 2016• Final: tbd (finals’ week)
![Page 16: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/16.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 16
Visualization and Computer Graphics LabJacobs University
Dates - Assignments
Due: 13.05. at 7pmHanded out: 06.05.Homework 13Due: 06.05. at 7pmHanded out: 29.04.Homework 12Due: 29.04. at 7pmHanded out: 22.04.Homework 11Due: 22.04. at 7pmHanded out: 15.04.Homework 10Due: 15.04. at 7pmHanded out: 08.04.Homework 9Due: 08.04. at 7pmHanded out: 01.04.Homework 8Due: 01.04. at 7pmHanded out: 18.03.Homework 7Due: 18.03. at 7pmHanded out: 11.03.Homework 6Due: 11.03. at 7pmHanded out: 04.03.Homework 5Due: 04.03. at 7pmHanded out: 26.02.Homework 4Due: 26.02. at 7pmHanded out: 19.02.Homework 3Due: 19.02. at 7pmHanded out: 12.02.Homework 2Due: 12.02. at 7pmHanded out: 05.02.Homework 1
![Page 17: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/17.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 17
Visualization and Computer Graphics LabJacobs University
Literature
• Introduction to Algorithms. Thomas H. Corman, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, 3rd edition, MIT Press, 2009.
![Page 18: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/18.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 18
Visualization and Computer Graphics LabJacobs University
0.2 Goals
![Page 19: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/19.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 19
Visualization and Computer Graphics LabJacobs University
Goals
• The objective of the course is to learn about– fundamental algorithms for solving problems
efficiently,– basic algorithmic concepts, – the analysis of algorithms, and– fundamental data structures for efficiently
storing, accessing, and modifying data.
![Page 20: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/20.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 20
Visualization and Computer Graphics LabJacobs University
0.3 Content
![Page 21: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/21.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 21
Visualization and Computer Graphics LabJacobs University
Content
1. Foundations2. Sorting & Searching3. Fundamental Data Structures4. Design Concepts5. Graph Algorithms6. Computational Geometry
![Page 22: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/22.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 22
Visualization and Computer Graphics LabJacobs University
1. Foundations
![Page 23: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/23.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 23
Visualization and Computer Graphics LabJacobs University
1.1 Definitions
![Page 24: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/24.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 24
Visualization and Computer Graphics LabJacobs University
Definition: Algorithm
• An algorithm is a sequence of computational steps which transforms a set of values (input) to another set of values (desired output).
• It is a tool for solving a well-defined computational problem.
• Step-wise procedure that can be implemented in a computer program.
• Consists of a finite list of well-defined instructions (Turing machine).
• 'Algorithm' stems from 'Algoritmi', the Latin form of al-Khwārizmī, a Persian mathematician, astronomer and geographer.
![Page 25: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/25.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 25
Visualization and Computer Graphics LabJacobs University
Example: Sorting Problem
• Input:sequence of numbers.
• Output:permutation such that
• Example (instance of sorting problem):Input: 8 2 4 9 3 6Output: 2 3 4 6 8 9
![Page 26: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/26.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 26
Visualization and Computer Graphics LabJacobs University
Example: Searching
![Page 27: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/27.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 27
Visualization and Computer Graphics LabJacobs University
Example: Road map
Graph algorithm
![Page 28: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/28.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 28
Visualization and Computer Graphics LabJacobs University
Example: DNA sequences
String matching
![Page 29: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/29.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 29
Visualization and Computer Graphics LabJacobs University
Analysis of algorithms
• The theoretical study of computer-program performance and resource usage.
• Other design goals?– correctness– functionality– robustness– reliability– user-friendliness– programmer time– simplicity– modularity– maintainability– extensibility
![Page 30: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/30.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 30
Visualization and Computer Graphics LabJacobs University
Performance of Algorithms
• Analysis helps us to understand scalability.• Performance often draws the line between what is
feasible and what is impossible.• Algorithmic mathematics provides a language for
talking about program behavior.• “Performance is the currency of computing.“• The lessons of program performance generalize to
other computing resources.
![Page 31: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/31.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 31
Visualization and Computer Graphics LabJacobs University
Definition: Data Structure
• A data structure is a way to store and organize data in order to facilitate access and modification.
• There is typically no best data structure, but each data structure has its strengths and weaknesses.
• Which data structure to use, depends on the problem that is to be solved.
• Sometimes there is a trade-off between storage (in a data structure) and speed (in accessing a data structure or of an algorithm).
![Page 32: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/32.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 32
Visualization and Computer Graphics LabJacobs University
1.2 First example: Insertion Sort
![Page 33: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/33.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 33
Visualization and Computer Graphics LabJacobs University
Sorting problem
• First algorithm: Insertion Sort
![Page 34: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/34.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 34
Visualization and Computer Graphics LabJacobs University
Insertion Sort
![Page 35: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/35.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 35
Visualization and Computer Graphics LabJacobs University
Example
• Sort A = < 5, 2, 4, 6, 1, 3 >
![Page 36: CH08-320201 Algorithms and Data Structures · 2016-05-13 · 320201: Fundamental CS I (Algorithms and Data Structures) 31 Visualization and Computer Graphics Lab Jacobs University](https://reader034.vdocument.in/reader034/viewer/2022042416/5f323bf2e5674f23d55d3695/html5/thumbnails/36.jpg)
320201: Fundamental CS I (Algorithms and Data Structures) 36
Visualization and Computer Graphics LabJacobs University
Correctness
• Loop invariant:At the start of each iteration of the for loop, the subarray A[1..j-1] consists of elements originally in A[1..j-1], but in sorted order.