Algorithms a Look at Efficiency 1B

Algorithms a Look at Efficiency 1B

Algorithms A Look At Efficiency 1B Big O Notation 15-121 Introduction to Data Structures, Carnegie Mellon University - CORTINA 1 Big O Instead of using the exact number of operations to express the complexity of a computation, we use a more general notation called "Big O". Big O expresses the type of complexity function: Linear O(n) Log-Linear O(n log n) Quadratic O(n2) Exponential O(2n) Logarithmic O(log n) Constant O(1) 15-121 Introduction to Data Structures, Carnegie Mellon University - CORTINA 2 1 Big O Let C represent a function for the number of comparisons needed for an algorithm as a function of the size of the input array(s). Search C(n) = n = O(n) Unique I C(n) = n2 = O(n2) Diff C(m,n) = mn + n = O(mn) If arrays are the same size: O(n2) 15-121 Introduction to Data Structures, Carnegie Mellon University - CORTINA 3 More about Big O Consider a computation that performs 5n2 + 3n + 9 operations on n data elements. The graph comparing the number of data elements to the number of computations will be quadratic. 2 2 5n + 3n + 9 = O(n ) 2 Unique II Algorithm C(n) = n(n-1)/2 = O(n ) 15-121 Introduction to Data Structures, Carnegie Mellon University - CORTINA 4 2 Example 5 public static int binarySearch(int[] list, int target) { int min = 0, max = list.length-1, mid = 0; boolean found = false; while (!found && min <= max) { mid = (min + max) / 2; // (integer div!) if (list[mid] == target) found = true; else if (target < list[mid]) max = mid-1; else min = mid+1; } if (found) return mid; else return -1; } 15-121 Introduction to Data Structures, Carnegie Mellon University - CORTINA 5 Worst Case Example: list.length = n = 15 15-121 Introduction to Data Structures, Carnegie Mellon University - CORTINA 6 3 Binary Search: Worst Case How many iterations are needed before we end up with no elements left to examine? Array length Iterations 15 4 31 5 63 6 n 15-121 Introduction to Data Structures, Carnegie Mellon University - CORTINA 7 Big O: Formal Definition Let T(n) = the number of operations performed in an algorithm as a function of n. T(n) = O(f(n)) if and only if there exists two constants, n0 > 0 and c > 0, and a function f(n) such that for all n > n0, cf(n) ≥ T(n). cf(n) T(n) n0 n 15-121 Introduction to Data Structures, Carnegie Mellon University - CORTINA 8 4 Example Again Let T(n) = 5n2 + 3n + 9. Show that T(n) = O(n2). Find c and n0 such that for all n > n0, cn2 > 5n2 + 3n + 9. Find intersection point such that cn2 = 5n2 + 3n + 9. 2 Let n = n0 and solve for c: c = 5 + 3/n0 + 9/n0 . If n0 = 3, then c = 7. Thus, 7n2 > 5n2 + 3n + 9 for all n > 3. So 5n2 + 3n + 9 = O(n2) 15-121 Introduction to Data Structures, Carnegie Mellon University - CORTINA 9 More about Big O Big O gives us an upper-bound approximation on the complexity of a computation. We can say that the following computation is O(n3): for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) System.out.println(i + " " + j); A tighter bound would be O(n2), but both are technically correct. 15-121 Introduction to Data Structures, Carnegie Mellon University - CORTINA 10 5 Order of Complexity Algorithm O(A) Overall order of complexity of algorithm is O(B) max (O(A), O(B)). Examples: O(log N) + O(N) = O(N) O(N log N) + O(N) = O(N log N) 2 2 O(N log N) + O(N ) = O(N ) O(2N) + O(N2) = O(2N) 15-121 Introduction to Data Structures, Carnegie Mellon University - CORTINA 11 Order of Complexity Algorithm O(A) Overall order of complexity O(B) of algorithm is O(A * B). O(A) does not include complexity Example: of part B of algorithm - Nested loops Examples: O(log N) * O(N) = O(N log N) O(N log N) * O(N) = O(N2 log N) O(N) * O(1) = O(N) 15-121 Introduction to Data Structures, Carnegie Mellon University - CORTINA 12 6 Traveling Salesperson Given: a network of nodes representing cities and edges representing flight paths (weights represent cost) Is there a route that takes the salesperson through every city and back to the starting city with cost no more than K? The salesperson can visit a city only once (except for the start and end of the trip). 15-121 Introduction to Data Structures, Carnegie Mellon University - CORTINA 13 Traveling Salesperson 12 C 7 B 7 6 4 F 10 D 8 5 3 A 7 9 G E 11 15-121 Introduction to Data Structures, Carnegie Mellon University - CORTINA 14 7 Traveling Salesperson If there are N cities, what is the maximum number of routes that we might need to compute? Worst-case: There is a flight available between every pair of cities. Compute cost of every possible route. Pick a starting city how to Pick the next city (N-1 choices remaining) build a Pick the next city (N-2 choices remaining) route ... Maximum number of routes: ______ = O(______) 15-121 Introduction to Data Structures, Carnegie Mellon University - CORTINA 15 Comparing Big O Functions 2 Number of O(N!) O(N ) O(N log N) Operations O(N) O(log N) O(1) N (amount of data) 15-121 Introduction to Data Structures, Carnegie Mellon University - CORTINA 16 8 Algorithmic Time O(n) O(n2) O(n!) n = 10 1 msec 1 msec 1 msec n = 100 10 msec 100 msec 100! msec 10! n = 1,000 100 msec 10 sec n = 10,000 1 sec 16 min 40 sec n = 100,000 10 sec 27.7 hr n = 1,000,000 1 min 40 sec 115.74 days 15-121 Introduction to Data Structures, Carnegie Mellon University - CORTINA 17 9 .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    9 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us