Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis...
Transcript of Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis...
![Page 1: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/1.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Lecture 1Data Structures (DAT037)
Ramona Enache
November 3, 2014
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 2: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/2.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Data Structures
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 3: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/3.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Data Structures
A data structure is• a way to store and organize information.• optimized for access or modification of particular kinds
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 4: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/4.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Why Data Structures ?
Near future:• further study of algorithm and applications• compilers, programming language technology• operating systems, hardware verification• most programming-based courses from now on!
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 5: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/5.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Why Data Structures ?
More distant future:
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 6: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/6.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Teachers
• Lecturer: Ramona Enacheramona . enache ’at’ chalmers . se
• Assistants:• Anton Ekblad• Inari Listenmaa• Olof Mogren• Andreas Widén
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 7: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/7.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Homepage
Course Web Page
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 8: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/8.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Course Book
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 9: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/9.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Labs
• Work in pairs• Contact Ramona for:
• help with pairing up• exceptions for working alone (need good reasons!)• deadline extensions for labs - always before the actual
deadline
• last week of the course - you have an extra chance if youpassed 2 out of 3 labs.
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 10: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/10.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Partial exam
• optional• December 1st• 3 exercises• the result from each of them can replace the result from thesame exercise in the final exam
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 11: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/11.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Uniform Cost Model
• each instruction takes 1 unit of time• each variable takes 1 unit of memory• infinite memory• no cache, I/O• only for theoretical purposes - measure time and space forprograms!
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 12: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/12.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Example
How many steps does the algorithm take for n = a.length striclypositive ?
Example
int min=a[0];for (int i=1; i<a.length; i++)
if (a[i] < min) min = a[i];
Think about best-case and worst-case scenarios!
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 13: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/13.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Big O notation
• simplify complexity analysis• approximate final result• enough to judge the general performance of an algorithm
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 14: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/14.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Big O notation
Let us consider, for a given algorithm:• a function T(n) giving the number of steps for an input of sizen
• the same procedure can be used for measuring spaceWe say "T(n) is O(f(n))" if ∃n0 such thata × f(n) ≤ T(n) ≤ b × f(n),for 2 constants a and b, ∀n ≥ n0.
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 15: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/15.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Why n0 ?
• for a small n, the complexity difference is not noticeable• for a small n, the constant fact matters more
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 16: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/16.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Back to example
Best and worst-case scenario reduce to O(n)
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 17: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/17.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 18: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/18.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Growth rates
What happens if we double the input size from n to 2n ?If an algorithm is...• O(1), then it takes the same time as before• O(log n), then it takes a constant amount of time more• O(n), then it takes twice as long• O(n log n), then it takes twice as long + a bit more• O(n2), then it takes 4 times more time
• If the algorithm is O(2n), then adding one more item, makesthe algorithm take 2 times more time.
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 19: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/19.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 20: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/20.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Big O hierarchy
O(1) < O(log n) < O(n) < O(n log n) < O (n2) < O (n3) < O(2n)Adding a term to another term which is lower in the hierarchydoesn’t change the complexity
• O(1) + O(log n) = O(log n)• O(log n) + O(nk) = O(nk) (if k≥0)• O(nj) + O(nk) = O(nk) (if k ≥j)• O(nk) + O(2n) = O(2n)
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 21: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/21.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
More examples
What is the complexity of :
Example
for(int i=0; i<v.length; i++)for(int j=i+1; j<v.length; j++)
if (v[i]>v[j]) return false;return true;
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 22: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/22.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Exact answer: (n-1) + (n-2) + ...+1 = n(n-1)/2Answer: O(n2)
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 23: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/23.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
More examples
What about the following algorithm that determines (in anon-optimal way) if there is at most one 0 in the matrix a of size n× n.
Example
for (int i=0; i<n; i++)for(int j =0; j<n; j++)
if (a[i][j]==0) thenfor (int i1=0; i1<n; i1++)
for (int j1=0; j1<n; j1++)if (a[i1][j1] ==0 && (i1 != i || j1 != j))
then return 0;return 1;
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 24: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/24.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Answer: O(n4)
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 25: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/25.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
What about (n + 1)2(2n + 14) ?
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 26: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/26.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
Answer: O(n22n)
Ramona Enache Lecture 1 Data Structures (DAT037)
![Page 27: Lecture 1 Data Structures (DAT037) - Chalmers · 2014. 11. 3. · Data Structures in a NutshellThis CourseComplexity Analysis Lecture 1 Data Structures (DAT037) RamonaEnache November3,2014](https://reader035.fdocuments.in/reader035/viewer/2022071501/61206d297ae0173d87452d94/html5/thumbnails/27.jpg)
Data Structures in a Nutshell This Course Complexity Analysis
TO DO
• read from course book - Chapter 2• more about average-case complexity• non-polinomial complexities
• refresh your knowledge on proofs by induction – exercisesession
• all these will make more sense later!• find a lab partner!!
Ramona Enache Lecture 1 Data Structures (DAT037)