10-Complexity - 2/25/2011 What Makes a Good Algorithm?...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon
2/25/2011 1 CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2010 Thorsten Joachims Lecture 8: Asymptotic Complexity and O What Makes a Good Algorithm? Suppose you have two possible algorithms or data structures that basically do the same thing; which is better? Well… what do we mean by better? Faster? Less space? Easier to code? Easier to maintain? Required for homework? How do we measure time and space for an algorithm? 2 Sample Problem: Searching static boolean find(int[] a, int item) { for (int i = 0; i < a.length; i++) { if (a[i] == item) return true; } return false; } 3 Determine if a sorted array of integers contains a given integer First solution: Linear Search (check each element) static boolean find(int[] a, int item) { for ( int x : a ) { if (x == item) return true; } return false; } Sample Problem: Searching static boolean find (int[] a, int item) { int low = 0; int high = a.length - 1; while (low <= high) { int mid = (low + high)/2; if (a[mid] < item) low = mid + 1; else if (a[mid] > item) high = mid - 1; else return true; } return false; } 4 Second solution: Binary Search Linear Search vs Binary Search Which one is better? Linear Search is easier to program But Binary Search is faster… isn’t it? How do we measure to show that one is faster than the other Experiment Proof Which inputs do we use? Simplifying assumption #1: Use the size of the input rather than the input itself For our sample search problem, the input size is n+1 where n is the array size Simplifying assumption #2: Count the number of “ basic steps ” rather than computing exact times 5 One Basic Step = One Time Unit Basic step: input or output of a scalar value accessing the value of a scalar variable, array element, or field of an object assignment to a variable, array element, or field of an object a single arithmetic or logical
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 2
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 4

10-Complexity - 2/25/2011 What Makes a Good Algorithm?...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online