Cấu trúc dữ liệu - Tiếng anh

Chapter 1: Introduction Chapter 2 –LIST Chapter 3 -STACK Chapter 4 -QUEUE Chapter 5 -Searching Chapter 6 -Recursion Chapter 7 -Tree Chapter 8 -Heaps Chapter 9 -Graph Chapter 10 -Sorting Chapter 11: Hashing Chapter 12: Multiway Trees

pdf49 trang | Chia sẻ: tlsuongmuoi | Lượt xem: 2272 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Cấu trúc dữ liệu - Tiếng anh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Cao Hoang Tru CSE Faculty - HCMUT 1 10 September 2008 Chapter 1: Introduction • Pseudocode • Abstract data type • Algorithm efficiency Cao Hoang Tru CSE Faculty - HCMUT 2 10 September 2008 Pseudocode • What is an algorithm? Cao Hoang Tru CSE Faculty - HCMUT 3 10 September 2008 Pseudocode • What is an algorithm? – The logical steps to solve a problem. Cao Hoang Tru CSE Faculty - HCMUT 4 10 September 2008 Pseudocode • What is a program? – Program = Data structures + Algorithms (Niklaus Wirth) Cao Hoang Tru CSE Faculty - HCMUT 5 10 September 2008 Pseudocode • The most common tool to define algorithms. • English-like representation of the code required for an algorithm. Cao Hoang Tru CSE Faculty - HCMUT 6 10 September 2008 Pseudocode • Pseudocode = English + Code relaxed syntax being instructions using easy to read basic control structures (sequential, conditional, iterative) Cao Hoang Tru CSE Faculty - HCMUT 7 10 September 2008 Pseudocode Algorithm Header Algorithm Body Cao Hoang Tru CSE Faculty - HCMUT 8 10 September 2008 Pseudocode • Algorithm Header: – Name – Parameters and their types – Purpose • what the algorithm does – Precondition • precursor requirements for the parameters – Postcondition • taken action and status of the parameters – Return condition • returned value Cao Hoang Tru CSE Faculty - HCMUT 9 10 September 2008 Pseudocode • Algorithm Body: – Statements – Statement numbers • decimal notation to express levels – Variables • important data – Algorithm analysis • comments to explain salient points – Statement constructs • sequence, selection, iteration Cao Hoang Tru CSE Faculty - HCMUT 10 10 September 2008 Example Algorithm average Pre nothing Post numbers read and their average printed 1 i = 0 2 loop (all data not read) 1 i = i + 1 2 read number 3 sum = sum + number 3 average = sum / i 4 print average 5 return End average Cao Hoang Tru CSE Faculty - HCMUT 11 10 September 2008 Algorithm Design • Divide-and-conquer • Top-down design • Abstraction of instructions • Step-wise refinement Cao Hoang Tru CSE Faculty - HCMUT 12 10 September 2008 Abstract Data Type • What is a data type? – Class of data objects that have the same properties Cao Hoang Tru CSE Faculty - HCMUT 13 10 September 2008 Abstract Data Type • Development of programming concepts: – GOTO programming • control flow is like spaghetti on a plate – Modular programming • programs organized into subprograms – Structured programming • structured control statements (sequence, selection, iteration) – Object-oriented programming • encapsulation of data and operations Cao Hoang Tru CSE Faculty - HCMUT 14 10 September 2008 Abstract Data Type • ADT = Data structures + Operations Cao Hoang Tru CSE Faculty - HCMUT 15 10 September 2008 Abstract Data Type Implementation of data and operations Interface User knows what a data type can do. How it is done is hidden. Cao Hoang Tru CSE Faculty - HCMUT 16 10 September 2008 Abstract Data Type data structure function A function B internal function data data Cao Hoang Tru CSE Faculty - HCMUT 17 10 September 2008 Example: Variable Access • Rectangle: r – length: x – width: y • Rectangle: r – length: x (hidden) – width: y (hidden) – get_length() – get_width() Cao Hoang Tru CSE Faculty - HCMUT 18 10 September 2008 Example: List • Interface: – Data: • sequence of components of a particular data type – Operations: • accessing • insertion • deletion • Implementation: – Array, or – Linked list Cao Hoang Tru CSE Faculty - HCMUT 19 10 September 2008 Algorithm Efficiency • How fast an algorithm is? • How much memory does it cost? • Computational complexity: measure of the difficulty degree (time or space) of an algorithm. Cao Hoang Tru CSE Faculty - HCMUT 20 10 September 2008 Algorithm Efficiency • General format: f(n) n is the size of a problem (the key number that determines the size of input data) Cao Hoang Tru CSE Faculty - HCMUT 21 10 September 2008 Linear Loops 1 i = 1 1 i = 1 2 loop (i <= 1000) 2 loop (i <= 1000) 1 application code 1 application code 2 i = i + 1 2 i = i + 2 The number of times the body The number of times the body of the loop is replicated is of the loop is replicated is 1000 500 Cao Hoang Tru CSE Faculty - HCMUT 22 10 September 2008 Linear Loops n time f(n) = n.T f(n) = (n/2).T Cao Hoang Tru CSE Faculty - HCMUT 23 10 September 2008 Logarithmic Loops Multiply loops 1 i = 1 2 loop (i <= 1000) 1 application code 2 i = i × 2 The number of times the body of the loop is replicated is log2n Cao Hoang Tru CSE Faculty - HCMUT 24 10 September 2008 Logarithmic Loops Multiply loops Divide loops 1 i = 1 1 i = 1000 2 loop (i = 1) 1 application code 1 application code 2 i = i × 2 2 i = i / 2 The number of times the body of the loop is replicated is log2n Cao Hoang Tru CSE Faculty - HCMUT 25 10 September 2008 Logarithmic Loops n time f(n) = (log2n).T Cao Hoang Tru CSE Faculty - HCMUT 26 10 September 2008 Nested Loops Iterations = Outer loop iterations × Inner loop iterations Cao Hoang Tru CSE Faculty - HCMUT 27 10 September 2008 Linear Logarithmic Loops 1 i = 1 2 loop (i <= 10) 1 j = 1 2 loop (j <= 10) 1 application code 2 j = j × 2 3 i = i + 1 The number of times the body of the loop is replicated is nlog2n Cao Hoang Tru CSE Faculty - HCMUT 28 10 September 2008 Linear Logarithmic Loops n time f(n) = (nlog2n).T Cao Hoang Tru CSE Faculty - HCMUT 29 10 September 2008 Quadratic Loops 1 i = 1 2 loop (i <= 10) 1 j = 1 2 loop (j <= 10) 1 application code 2 j = j + 1 3 i = i + 1 The number of times the body of the loop is replicated is n2 Cao Hoang Tru CSE Faculty - HCMUT 30 10 September 2008 Dependent Quadratic Loops 1 i = 1 2 loop (i <= 10) 1 j = 1 2 loop (j <= i) 1 application code 2 j = j + 1 3 i = i + 1 The number of times the body of the loop is replicated is 1 + 2 + … + n = n(n + 1)/2 Cao Hoang Tru CSE Faculty - HCMUT 31 10 September 2008 Quadratic Loops n time f(n) = n2.T Cao Hoang Tru CSE Faculty - HCMUT 32 10 September 2008 Asymptotic Complexity • Algorithm efficiency is considered with only big problem sizes. • We are not concerned with an exact measurement of an algorithm's efficiency. • Terms that do not substantially change the function’s magnitude are eliminated. Cao Hoang Tru CSE Faculty - HCMUT 33 10 September 2008 Big-O Notation • f(n) = c.n⇒ f(n) = O(n). • f(n) = n(n + 1)/2 = n2/2 + n/2 ⇒ f(n) = O(n2). Cao Hoang Tru CSE Faculty - HCMUT 34 10 September 2008 Big-O Notation • Set the coefficient of the term to one. • Keep the largest term and discard the others. log2n n nlog2n n2 n3 ... nk ... 2n n! Cao Hoang Tru CSE Faculty - HCMUT 35 10 September 2008 Standard Measures of Efficiency intractable10,000!O(n!)factorial intractable210,000O(2n)exponential hours10,000kO(nk)polynomial 15-20 min. 10,0002O(n2)quadratic 2 seconds140,000O(nlog2n)linear logarithmic .1 seconds10,000O(n)linear microseconds14O(log2n)logarithmic Est. TimeIterationsBig-OEfficiency Assume instruction speed of 1 microsecond and 10 instructions in loop. n = 10,000 Cao Hoang Tru CSE Faculty - HCMUT 36 10 September 2008 Standard Measures of Efficiency n O(n) log2n nlog2nn2 n Cao Hoang Tru CSE Faculty - HCMUT 37 10 September 2008 Big-O Analysis Examples Algorithm addMatrix (val matrix1 , val matrix2 , val size , ref matrix3 ) Add matrix1 to matrix2 and place results in matrix3 Pre matrix1 and matrix2 have data size is number of columns and rows in matrix Post matrices added - result in matrix3 1 r = 1 2 loop (r <= size) 1 c = 1 2 loop (c <= size) 1 matrix3[r, c] = matrix1[r, c] + matrix2[r, c] 2 c = c + 1 3 r = r + 1 3 return End addMatrix Cao Hoang Tru CSE Faculty - HCMUT 38 10 September 2008 Big-O Analysis Examples Algorithm addMatrix (val matrix1 , val matrix2 , val size , ref matrix3 ) Add matrix1 to matrix2 and place results in matrix3 Pre matrix1 and matrix2 have data size is number of columns and rows in matrix Post matrices added - result in matrix3 1 r = 1 2 loop (r <= size) 1 c = 1 2 loop (c <= size) 1 matrix3[r, c] = matrix1[r, c] + matrix2[r, c] 2 c = c + 1 3 r = r + 1 3 return End addMatrix Nested linear loop: f(size) = O(size2) Cao Hoang Tru CSE Faculty - HCMUT 39 10 September 2008 Time Costing Operations • The most time consuming: data movement to/from memory/storage. • Operations under consideration: – Comparisons – Arithmetic operations – Assignments Cao Hoang Tru CSE Faculty - HCMUT 40 10 September 2008 Recurrence Equation • An equation or inequality that describes a function in terms of its value on smaller input. Cao Hoang Tru CSE Faculty - HCMUT 41 10 September 2008 Recurrence Equation • Example: binary search. 918177623622211410874 a[12]a[11]a[10]a[9]a[8]a[7]a[6]a[5]a[4]a[3]a[2]a[1] Cao Hoang Tru CSE Faculty - HCMUT 42 10 September 2008 Recurrence Equation • Example: binary search. 918177623622211410874 a[12]a[11]a[10]a[9]a[8]a[7]a[6]a[5]a[4]a[3]a[2]a[1] f(n) = 1 + f(n/2) ⇒ f(n) = O(log2n) Cao Hoang Tru CSE Faculty - HCMUT 43 10 September 2008 Best, Average, Worst Cases • Best case: when the number of steps is smallest. • Worst case: when the number of steps is largest. • Average case: in between. Cao Hoang Tru CSE Faculty - HCMUT 44 10 September 2008 Best, Average, Worst Cases • Example: sequential search. 817791623622142110784 a[12]a[11]a[10]a[9]a[8]a[7]a[6]a[5]a[4]a[3]a[2]a[1] Best case: f(n) = O(1) Worst case: f(n) = O(n) Cao Hoang Tru CSE Faculty - HCMUT 45 10 September 2008 Best, Average, Worst Cases • Example: sequential search. 817791623622142110784 a[12]a[11]a[10]a[9]a[8]a[7]a[6]a[5]a[4]a[3]a[2]a[1] Average case: f(n) = ∑i.pi pi: probability for the target being at a[i] pi = 1/n ⇒ f(n) = (∑i)/n = O(n) Cao Hoang Tru CSE Faculty - HCMUT 46 10 September 2008 P and NP Problems • P: Polynomial (can be solved in polynomial time on a deterministic machine). • NP: Nondeterministic Polynomial (can be solved in polynomial time on a non- deterministic machine). Cao Hoang Tru CSE Faculty - HCMUT 47 10 September 2008 P and NP Problems Travelling Salesman Problem: A salesman has a list of cities, each of which he must visit exactly once. There are direct roads between each pair of cities on the list. Find the route the salesman should follow for the shortest possible round trip that both starts and finishes at any one of the cities. A B C D E 1 10 5 5 515 Cao Hoang Tru CSE Faculty - HCMUT 48 10 September 2008 P and NP Problems Travelling Salesman Problem: Deterministic machine: f(n) = n(n-1)(n-2) … 1 = O(n!) ⇒ NP problem A B C D E 1 10 5 5 515 Cao Hoang Tru CSE Faculty - HCMUT 49 10 September 2008 P and NP Problems • NP-complete: NP and every other problem in NP is polynomially reducible to it. • Open question: P = NP? NP P NP-complete

Các file đính kèm theo tài liệu này:

  • pdfChap 1.pdf
  • pdfChap 2 - List.pdf
  • pdfChap 3a - Stack.pdf
  • pdfChap 3b - StackApp.pdf
  • pdfChap 4 - Queue - 2009[1].pdf
  • pdfChapter 9 - Graph.pdf
  • pdfchapter 11- Hash.pdf
  • pdfChapter2_LinkedList_Implementation.pdf
  • pdfChapter5 - Searching.pdf
  • pdfChapter6 - Recursion.pdf
  • pdfChapter7 - Tree.pdf
  • pdfChapter7b - AVL.pdf
  • pdfChapter8 - Heaps.pdf
  • pdfChapter10 - Sort.pdf
  • pdfChapter12 - Multiway Trees.pdf
  • pdfchapter12Multiway tree.pdf
Tài liệu liên quan