Analysis - Analysis of Algorithms Input Algorithm Output An...

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

View Full Document Right Arrow Icon
Analysis of Algorithms Algorithm Input Output An  algorithm  is a step-by-step procedure for solving a problem in a finite amount of time.
Background image of page 1

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

View Full DocumentRight Arrow Icon
  Analysis of Algorithms 2 © 2004 Goodrich, Tamassia Running Time (§3.1)  Most algorithms transform  input objects into output  objects. The running time of an  algorithm typically grows  with the input size. Average case time is often  difficult to determine. We focus on the worst case  running time. Easier to analyze Crucial to applications such as  games, finance and robotics 0 20 40 60 80 100 120 Running Time 1000 2000 3000 4000 I nput Size best case average case worst case
Background image of page 2
  Analysis of Algorithms 3 © 2004 Goodrich, Tamassia Experimental Studies Write a program  implementing the algorithm Run the program with  inputs of varying size and  composition Use a method like  System.currentTimeMillis( )  to get an accurate  measure of the actual  running time Plot the results 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 0 50 100 I nput Size Time (ms)
Background image of page 3

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

View Full DocumentRight Arrow Icon
  Analysis of Algorithms 4 © 2004 Goodrich, Tamassia Limitations of Experiments It is necessary to implement the  algorithm, which may be difficult Results may not be indicative of the  running time on other inputs not included  in the experiment.  In order to compare two algorithms, the  same hardware and software  environments must be used
Background image of page 4
  Analysis of Algorithms 5 © 2004 Goodrich, Tamassia Theoretical Analysis Uses a high-level description of the  algorithm instead of an implementation. Characterizes running time as a  function of the input size,  n . Takes into account all possible inputs. Allows us to evaluate the speed of an  algorithm independent of the hardware/ software environment.
Background image of page 5

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

View Full DocumentRight Arrow Icon
  Analysis of Algorithms 6 © 2004 Goodrich, Tamassia Pseudocode (§3.2) High-level description  of an algorithm More structured than  English prose Less detailed than a  program Preferred notation for  describing algorithms Hides program design  issues Algorithm arrayMax ( A , n ) Input array A of n integers Output maximum element of A currentMax A [0] for i 1 to n - 1 do if A [ i ] currentMax then currentMax A [ i ] return currentMax Example: find max  element of an array
Background image of page 6
  Analysis of Algorithms 7 © 2004 Goodrich, Tamassia Pseudocode Details Control flow if then [ else …] while do repeat until for do Indentation replaces braces  Method declaration Algorithm method ( arg [, arg …]) Input Output Method call var.method ( arg [, arg …]) Return value return expression Expressions Assignment (like  =  in Java) = Equality testing (like  = =  in Java) n 2 Superscripts and other  mathematical formatting  allowed
Background image of page 7

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

View Full DocumentRight Arrow Icon
  Analysis of Algorithms 8 © 2004 Goodrich, Tamassia The Random Access Machine  (RAM) Model CPU An potentially unbounded  bank of  memory
Background image of page 8
Image of page 9
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 28

Analysis - Analysis of Algorithms Input Algorithm Output An...

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

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