Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 1 pp 1-14 Properties of Algorithms Pseudocode.

Similar presentations


Presentation on theme: "Chapter 1 pp 1-14 Properties of Algorithms Pseudocode."— Presentation transcript:

1 Chapter 1 pp 1-14 Properties of Algorithms Pseudocode

2 What is an algorithm? You tell me.

3 Algorithms step by step method for solving a problem. formal solution method implementing a problem solution with computer code is pretty darn formal

4 Algorithms have properties Input Output Precision Determinism Finiteness Correctness Generality

5 Examples first Lets look at an example first and we’ll try to identify the properties. 1. Max of three numbers 2. Shortest pair problem

6 Max of 3 numbers int Max(int a, int b, int c) { if (a > b) { if (a > c) return a; else return c; } else { if (b > c) return b; else return c; }

7 Max of 3 Input: 3 numbers a, b, and c Output: 1 number that is the max of a, b, and c. (duh?) Is the algorithm precisely defined? What would an imprecise algorithm look like? Code by its very nature is precise.

8 Determinism Same input, same steps  Some outcome Non-determinism –Same input, same steps  Different outcome Code by its nature is deterministic How do your write a non-deterministic program?

9 Finiteness Will it run infinitely? The definition of an algorithm is a formally defined solution to a problem. Is it really a solution if it runs forever?

10 Correctness It is very easy to write incorrect code. Verifying correctness is wicked hard This is where proofs come in handy.

11 Generality Can the algorithm be applied to all sets of possible input? Here an algorithm that is correct but not general. int max(a, b) { if (a > 10 && b < 10) return a; }

12 Pseudocode resembles C++ and Java like short-hand max(a,b) { if a > b return a else return b } This is where algorithms get imprecise

13 Pseudocode easier to specify loops easier to define data structures mystery(a[], n, x) { for i = 0 to n-1 if (x == a[i]) return true return false; }

14 Example: Shortest pair Given n points (x,y)-pairs –Where x and y are real numbers. Return the distance of the two closest points. –You could also return the two points Describe how you would solve this in words.

15 Example: Shortest pair Given n points (x,y)-pairs –Where x and y are real numbers. Return the distance of the two closest points. –Also return the two points Describe how you would solve this in words. #1 INPUT: Here the input is well-defined #2 OUTPUT: The details here can have big impact on the actual algorithm #3 PRECISION: Some algorithms can be precisely described with word, some cannot.

16 Example: Shortest pair Compute the distance between every pair of points. Return the two points with minimum distance #3 PRECISION: This is not precise because important details are not described: 1. Computing Distance is not trivial 2. Iterating over every pair of points is not a simple operation.

17 Example: Shortest pair Input: An array of n points p[i] Output: A distance d, which is the minimum among all pairs of points Algorithm: d = 1000000; for i = 1 to n for j = i+1 to n temp = dist(p[i], p[j]) if (temp < d) d = temp return d;

18 Example: Shortest pair float dist(a, b) { return sqrt((a.x – b.x) 2 + (a.y – b.y) 2 ); } Is this as precise as you can get? BTW, there are six mathematical operations here Two ( – ) one clock cycle each One ( + ) one clock cycle Two ( * ) one clock cycle each One ( sqrt function ) ? clock cycles


Download ppt "Chapter 1 pp 1-14 Properties of Algorithms Pseudocode."

Similar presentations


Ads by Google