This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: Analysis of Algorithms Mariusz Bajger COMP2781/8781 School of Computer Science, Engineering and Mathematics May 6, 2011 1/21 Reading and Exercises Reading Epp, Chapter 11 Exercises Sec. 11.1 (use as much as you need; revision of MATH1121), 11.2 (blue ones), 11.3 (Ex.1-35), 11.4 (in blue), 11.5 (Ex. 1-25) Good learning strategy: BE ACTIVE! I Regularly revise lectures I Solve the suggested exercises I Be critical when reading textbook/lectures I Ask your colleagues, ask the lecturer, dont be shy! I It is OK to ask for help any time 2/21 Algorithm Characteristics (1) Input (2) Output (3) Precise steps (4) Determinism or randomness (5) Finiteness or constant run (6) Correctness (7) Generality An algorithm is a finite sequence of clearly and unambiguously defined steps for performing a task. Each step must be executable in a finite time and the whole process must be guaranteed to stop after a finite number of steps. 3/21 Time Efficiency (never mind, just wait a few years) I Often the running time depends on the problem size . I Problem size = size of the input or the value of a command-line argument. I 3 Ghz processor performs up to 3 bilion operations per second, that is, one operation approx. takes up to 0.3 nanoseconds. 4/21 Input size vs time efficiency I To approximate running time we need: (1) good understanding of the program (algorithm) (2) some mathematical analysis tools (3) understanding of the system and the computer I Combination of some empirical observations and small set of mathematical tools is usually sucient to approximate well the running time for most algorithms. I Doubling hypothesis is a practical quick method of estimating the input size and run-time relationship: Run the program several times doubling the input each time ....
View Full Document