inf421 lecture 1 lists and complexity
play

INF421, Lecture 1 Lists and Complexity Leo Liberti LIX, Ecole - PowerPoint PPT Presentation

INF421, Lecture 1 Lists and Complexity Leo Liberti LIX, Ecole Polytechnique, France INF421, Lecture 1 p. 1 Course Objective : to teach you some data structures and associated algorithms Evaluation : TP not en salle info le 16


  1. INF421, Lecture 1 Lists and Complexity Leo Liberti LIX, ´ Ecole Polytechnique, France INF421, Lecture 1 – p. 1

  2. Course Objective : to teach you some data structures and associated algorithms Evaluation : TP noté en salle info le 16 septembre, Contrôle à la fin. Note: max( CC, 3 4 CC + 1 4 TP ) Organization : fri 26/8, 2/9, 9/9, 16/9, 23/9, 30/9, 7/10, 14/10, 21/10, amphi 1030-12 (Arago), TD 1330-1530, 1545-1745 (SI31,32,33,34) Books : 1. Ph. Baptiste & L. Maranget, Programmation et Algorithmique , Ecole Polytechnique (Polycopié), 2006 2. G. Dowek, Les principes des langages de programmation , Editions de l’X, 2008 3. D. Knuth, The Art of Computer Programming , Addison-Wesley, 1997 4. K. Mehlhorn & P . Sanders, Algorithms and Data Structures , Springer, 2008 Website : www.enseignement.polytechnique.fr/informatique/INF421 Contact : liberti@lix.polytechnique.fr (e-mail subject: INF421) INF421, Lecture 1 – p. 2

  3. Lecture summary Reminders Complexity Lists INF421, Lecture 1 – p. 3

  4. Reminders INF421, Lecture 1 – p. 4

  5. Memory address Memory cell has an address stores a datum d INF421, Lecture 1 – p. 5

  6. Memory Two operations Move datum from cell to CPU (read) d d CPU 0x1FFF241 address Move datum from CPU to cell Memory cell (write) has an address stores a datum d d CPU 0x1FFF241 INF421, Lecture 1 – p. 5

  7. Memory Two operations Move datum from cell to CPU (read) d d CPU 0x1FFF241 address Move datum from CPU to cell Memory cell (write) has an address stores a datum d d CPU 0x1FFF241 Representation of memory : a sequence of cells d 0 d 1 d 2 d 3 d 4 d 5 0x0 0x1 0x2 0x3 0x4 0x5 INF421, Lecture 1 – p. 5

  8. Memory Two operations Move datum from cell to CPU (read) d d CPU 0x1FFF241 address Move datum from CPU to cell Memory cell (write) has an address stores a datum d d CPU 0x1FFF241 Representation of memory : a sequence of cells A function D : A → D d 0 d 1 d 2 d 3 d 4 d 5 A : set of addresses 0x0 0x1 0x2 0x3 0x4 0x5 D : set of data elements INF421, Lecture 1 – p. 5

  9. Assumptions For theoretical purposes, assume memory is infinite → In practice it is finite Each datum can be stored in a single cell → Different data elements might have different sizes INF421, Lecture 1 – p. 6

  10. Naming memory A program variable is just a name for a chunk of memory x denotes: 0x4 0x5 0x6 0x7 INF421, Lecture 1 – p. 7

  11. Naming memory A program variable is just a name for a chunk of memory x denotes: 0x4 0x5 0x6 0x7 We simply associate a name to the starting address The size of the chunk is given by the name’s type INF421, Lecture 1 – p. 7

  12. Naming memory A program variable is just a name for a chunk of memory x denotes: 0x4 0x5 0x6 0x7 We simply associate a name to the starting address The size of the chunk is given by the name’s type Basic types : int , long , char , float , double Composite types : Cartesian products of basic types if y.a ∈ int and y.b ∈ float then y ∈ int × float INF421, Lecture 1 – p. 7

  13. Basic operations Assignment : write value in memory cell(s) named by variable (i.e. “variable=value”) Arithmetic : + , − , × , ÷ for integer and floating point numbers Test : evaluate a logical condition: if true, change address of next instruction to be executed Loop : instead of performing next instruction in memory, jump to an instruction at a given address (more like a “go to”) INF421, Lecture 1 – p. 8

  14. Basic operations Assignment : write value in memory cell(s) named by variable (i.e. “variable=value”) Arithmetic : + , − , × , ÷ for integer and floating point numbers Test : evaluate a logical condition: if true, change address of next instruction to be executed Loop : instead of performing next instruction in memory, jump to an instruction at a given address (more like a “go to”) WARNING ! In these slides, I use “ = ” to mean two different things : 1. in assignments, “variable = value” means “put value in the cell whose address is named by variable” 2. in tests, “variable = value” is TRUE if the cell whose address is named by variable contains value, and FALSE otherwise in C/C++/Java “ = ” is used for assignments, and “ == ” for tests INF421, Lecture 1 – p. 8

  15. Composite operations: programs Programs are built recursively from basic operations If A , B are ops, then concatenation “ A;B ” is an op Semantics: execute A , then execute B INF421, Lecture 1 – p. 9

  16. Composite operations: programs Programs are built recursively from basic operations If A , B are ops, then concatenation “ A;B ” is an op Semantics: execute A , then execute B If A , B are ops and T is a test, “ if (T) A else B ” is an op Semantics: if T is true execute A , else B INF421, Lecture 1 – p. 9

  17. Composite operations: programs Programs are built recursively from basic operations If A , B are ops, then concatenation “ A;B ” is an op Semantics: execute A , then execute B If A , B are ops and T is a test, “ if (T) A else B ” is an op Semantics: if T is true execute A , else B If A is an op and T is a test, “ while (T) A ” is an op Semantics: 1:(if (T) A else (go to 2)) (go to 1) 2: INF421, Lecture 1 – p. 9

  18. An example 1: input n ; 2: int s = 0 ; 3: int i = 1 ; 4: while ( i ≤ n ) do n s ? ? i ? s = s + i ; 5: i = i + 1 ; 6: 7: end while 8: output s ; INF421, Lecture 1 – p. 10

  19. An example 1: input n ; 2: int s = 0 ; 3: int i = 1 ; 4: while ( i ≤ n ) do n s ? i ? 2 s = s + i ; 5: i = i + 1 ; 6: 7: end while 8: output s ; INF421, Lecture 1 – p. 10

  20. An example 1: input n ; 2: int s = 0 ; 3: int i = 1 ; 4: while ( i ≤ n ) do n s 2 i ? 0 s = s + i ; 5: i = i + 1 ; 6: 7: end while 8: output s ; INF421, Lecture 1 – p. 10

  21. An example 1: input n ; 2: int s = 0 ; 3: int i = 1 ; 4: while ( i ≤ n ) do n s 2 0 i 1 s = s + i ; 5: i = i + 1 ; 6: 7: end while 8: output s ; INF421, Lecture 1 – p. 10

  22. An example 1: input n ; 2: int s = 0 ; 3: int i = 1 ; 4: while ( i ≤ n ) do n s 0 2 i 1 s = s + i ; 5: i = i + 1 ; 6: 7: end while 8: output s ; i ≤ n ≡ 1 ≤ 2 : true INF421, Lecture 1 – p. 10

  23. An example 1: input n ; 2: int s = 0 ; 3: int i = 1 ; 4: while ( i ≤ n ) do n s 2 i 1 1 s = s + i ; 5: i = i + 1 ; 6: 7: end while 8: output s ; INF421, Lecture 1 – p. 10

  24. An example 1: input n ; 2: int s = 0 ; 3: int i = 1 ; 4: while ( i ≤ n ) do n s 2 1 i 2 s = s + i ; 5: i = i + 1 ; 6: 7: end while 8: output s ; INF421, Lecture 1 – p. 10

  25. An example 1: input n ; 2: int s = 0 ; 3: int i = 1 ; 4: while ( i ≤ n ) do n s 2 1 i 2 s = s + i ; 5: i = i + 1 ; 6: 7: end while 8: output s ; i ≤ n ≡ 2 ≤ 2 : true INF421, Lecture 1 – p. 10

  26. An example 1: input n ; 2: int s = 0 ; 3: int i = 1 ; 4: while ( i ≤ n ) do n s 2 i 2 3 s = s + i ; 5: i = i + 1 ; 6: 7: end while 8: output s ; INF421, Lecture 1 – p. 10

  27. An example 1: input n ; 2: int s = 0 ; 3: int i = 1 ; 4: while ( i ≤ n ) do n s 3 2 i 3 s = s + i ; 5: i = i + 1 ; 6: 7: end while 8: output s ; INF421, Lecture 1 – p. 10

  28. An example 1: input n ; 2: int s = 0 ; 3: int i = 1 ; 4: while ( i ≤ n ) do n s 3 3 2 i s = s + i ; 5: i = i + 1 ; 6: 7: end while 8: output s ; i ≤ n ≡ 3 ≤ 2 : false INF421, Lecture 1 – p. 10

  29. An example 1: input n ; 2: int s = 0 ; 3: int i = 1 ; 4: while ( i ≤ n ) do n s 2 3 3 i s = s + i ; 5: i = i + 1 ; 6: 7: end while 8: output s ; output s = 3 INF421, Lecture 1 – p. 10

  30. Complexity INF421, Lecture 1 – p. 11

  31. Complexity Several different programs can yield the same result: which is best? Evaluate their time (and/or space) complexity time complexity : how many “basic operations” space complexity : how much memory used by the program during execution Worst case : max values during execution Best case : min values during execution Average case : average values during execution P : a program t P : number of basic operations performed by P INF421, Lecture 1 – p. 12

  32. Time complexity (worst case) ∀ P ∈ { assignment , arithmetic , test } : t P = 1 INF421, Lecture 1 – p. 13

  33. Time complexity (worst case) ∀ P ∈ { assignment , arithmetic , test } : t P = 1 Concatenation : for P, Q programs: t P ; Q = t P + t Q INF421, Lecture 1 – p. 13

  34. Time complexity (worst case) ∀ P ∈ { assignment , arithmetic , test } : t P = 1 Concatenation : for P, Q programs: t P ; Q = t P + t Q Test : for P, Q programs and R a test: t if ( T ) P else Q = t T + max( t P , t Q ) max : worst-case policy INF421, Lecture 1 – p. 13

  35. Time complexity (worst case) ∀ P ∈ { assignment , arithmetic , test } : t P = 1 Concatenation : for P, Q programs: t P ; Q = t P + t Q Test : for P, Q programs and R a test: t if ( T ) P else Q = t T + max( t P , t Q ) max : worst-case policy Loop : it’s complicated (depends on how and when loop terminates) INF421, Lecture 1 – p. 13

  36. Loop complexity example The complete loop Let P be the following program: 1: i = 0 ; 2: while ( i < n ) do A ; 3: i = i + 1 ; 4: 5: end while Assume A does not change the value of i Body of loop executed n times t P ( n ) = 1 + n ( t A + 3) Why the ‘3’? Well, t ( i<n ) = 1 , t ( i +1) = 1 , t ( i = · ) = 1 INF421, Lecture 1 – p. 14

  37. Orders of complexity In the above program, suppose t A = 1 2 n INF421, Lecture 1 – p. 15

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend