24
CSC 201 CSC 201 Analysis and Design of Analysis and Design of Algorithms Algorithms Lecture 03: Lecture 03: Introduction to a Introduction to algorithms analysis Asst. Dr.Surasak Mungsing Asst. Dr.Surasak Mungsing E-mail: [email protected] 03/17/22 1

CSC 201 Analysis and Design of Algorithms Lecture 03: Introduction to a CSC 201 Analysis and Design of Algorithms Lecture 03: Introduction to a lgorithms

Embed Size (px)

Citation preview

CSC 201CSC 201Analysis and Design of AlgorithmsAnalysis and Design of Algorithms

Lecture 03:Lecture 03:Introduction to aIntroduction to algorithms analysis

Asst. Dr.Surasak MungsingAsst. Dr.Surasak MungsingE-mail: [email protected]

04/19/23 1

Apr 19, 2023 2CSC201 Analysis and Design of Algorithms

Meaning of AMeaning of Algorithmlgorithm

Algorithm

• Recipe for getting things done successfully "Recipe" – well defined steps of doing

"things" – computation problems which defined input/output

"done" – solved within definite time and steps "successfully" – done correctly

• Any special method of solving a certain kindof problem - Webster Dictionary

Apr 19, 2023 3

Computer ProgramComputer Program A computer program (also a software program, or

just a program) is a sequence of instructions written to perform a specified task for a computer.

A computer program in the form of a human-readable, computer programming language is called source code. Source code may be converted into an executable image by a compiler or executed immediately with the aid of an interpreter.

Algorithm is a step by step outline or flowchart how to solve a problem, but program is an implemented coding of a solution to a problem based on the algorithm.

http://wiki.answers.com/Q/What_is_the_differences_between_algorithm_and_program#ixzz1GXvHCUbb

CSC201 Analysis and Design of Algorithms

Apr 19, 20234

25, 90, 53, 23, 11, 34

INPUT

OUTPUTinstance

11

Algorithm

m:= a[1];for I:=2 to size of input if m > a[I] then m:=a[I]; return m

Data-Structure

Problem: Find the smallest integer from a given set of integers stored in an array

Example

CSC201 Analysis and Design of Algorithms

Apr 19, 20235

Algorithm A

Problem

Problem: Find the smallest integer from a given set of integers stored in an array

CSC201 Analysis and Design of Algorithms

Apr 19, 20236

1. copy the input a to array t1; assign n size of input;

2. While n > 1 For i 1 to n /2 t2[ i ] min (t1 [ 2*i ], t1[ 2*i + 1] ); copy array t2 to t1; n n/2;

3. Output t2[1];

Algorithm B (use two temporary arrays)

CSC201 Analysis and Design of Algorithms

Apr 19, 2023 7

1. Sort the input in increasing order. 2. Return the first element of the sorted data.

8956 1134 720

5 6 7 8 9 11 20 34

Sorting black box

Algorithm C

CSC201 Analysis and Design of Algorithms

Apr 19, 2023 8

Test each data whether it is the smallest one

1.iÃ0;°agÃtrue;2.While°agiÃi+1;minÃa[i];°agÃfalse;forjÃ1tosizeofinputifmin>a[j]then°agÃtrue;3.Outputmin.

Algorithm D

1. i 0;flag true;

2. while flag i i + 1;

min a[ i ]; flag false;

for j 1 to size of input if min > a[ i ] then flag true;3. output min

CSC201 Analysis and Design of Algorithms

Apr 19, 20239

Which algorithm is better?

All algorithms can solve the problem correctly, but which one is better?

Consideration is based on running time (number of operations needed) and amount of memory used

หมายเหตุ�ระยะเวลาที่�ใช้�ในการที่�างานของอ�ลกอร�ธึ�มจะเพิ่��มข��นเม��อจ�านวนข�อม�ลน�าเข�าเพิ่��มข��น

CSC201 Analysis and Design of Algorithms

Apr 19, 2023 10

• Correctness : ability to solve the problem correct ly in all cases

• Efficiency : required resources for algorithm to work correctly

• Time: number of execution• Space: memory space required

• Measurement model : worst case average case

best case

Correctness, efficiency and measurement model

CSC201 Analysis and Design of Algorithms

Apr 19, 2023 11

Input Size

Time vs. Size of Input

Measurement parameterized by the size of the input.The algorithms A,B,C are implemented and run in a PC.Algorithms D is implemented and run in a supercomputer.

CSC201 Analysis and Design of Algorithms

Apr 19, 2023 12

What is Algorithm Analysis?What is Algorithm Analysis?

Measurement of time complexity of algorithms

• Techniques that drastically reduce the running time of an algorithm

• A mathematical framework that more rigorously describes the running time of an algorithm

CSC201 Analysis and Design of Algorithms

Apr 19, 2023 13

Time required for small size of inputsTime required for small size of inputs

CSC201 Analysis and Design of Algorithms

Apr 19, 202314

Time required for intermediate size of inputs

CSC201 Analysis and Design of Algorithms

Asymtotic behaviorAsymtotic behavior A line whose distance to a given curve

tends to zero. An asymptote may or may not intersect its associated curve.

Asymptote

The x and y axes are asymptotes of the hyperbola xy = 1.

Asymptotic 1. (Mathematics) of or referring to an

asymptote 2. (Mathematics) (of a function, series,

formula, etc.) approaching a given value or condition, as a variable or an expression containing a variable approaches a limit, usually infinity

04/19/23 CSC201 Analysis and Design of Algorithms

Apr 19, 2023 16

Asymptotic PerformanceAsymptotic Performance

asymptotic performance In mathematics, computer science, and related fields, big-O

notation (along with the closely related big-Omega notation, big-Theta notation, and little o notation) describes the limiting behavior of a function when the argument tends towards a particular value or infinity, usually in terms of simpler functions.

Efficiency of an algorithm– Running time– Memory/storage requirements– Bandwidth/power requirements/logic gates/etc.

CSC201 Analysis and Design of Algorithms

Apr 19, 2023 17

AnalysisAnalysis

In computer science, best, worst and average cases of a given algorithm express what the resource usage is at least, at most and on average, respectively. Usually the resource being considered is running time, but it could also be memory or other resources.

Best case The term best-case performance is used in computer science to describe the way

an algorithm behaves under optimal conditions. Worst case

the worst-case execution time is often of particular concern since it is important to know how much time might be needed in the worst case to guarantee that the algorithm will always finish on time.

Average case Random (equally likely) inputs Real-life inputs

CSC201 Analysis and Design of Algorithms

Apr 19, 202318

Growth rate of functions

CSC201 Analysis and Design of Algorithms

Apr 19, 2023 19

Classification of functions based on growth rateClassification of functions based on growth rate

asymptotic growth rate, asymptotic order, or order of functions Comparison of functions by ignoring constant factors and small input

big oh O(g), big theta (g) and big omega (g)

g

(g): functions with growth rates at least as fast as function g

(g): functions with growth rates as fast as function g

O(g): functions with growth rates not faster than that of function g

CSC201 Analysis and Design of Algorithms

Apr 19, 2023 20

Classifying functions by theirClassifying functions by theirAsymptotic Growth RatesAsymptotic Growth Rates

O(g(n)), Big-Oh of g of n, the Asymptotic Upper Bound;

(g(n)), Theta of g of n, the Asymptotic Tight Bound; and

(g(n)), Omega of g of n, the Asymptotic Lower Bound.

CSC201 Analysis and Design of Algorithms

Apr 19, 2023 21

ExampleExample

Example: f(n) = n2 + 5n + 13.The constant 13 is not change, when n is larger so there is no significant for considering the lower order terms , which is +5n, when in comparison with the term in the order of n2

Therefore we may sat that f(n) = O(n2)

Question : What is the meaning of f(n) = O(g(n))? Answer: This means f is the same order of magnitude as g

CSC201 Analysis and Design of Algorithms

Apr 19, 2023 22

The meaning of Big OThe meaning of Big O

Q : What is the meaning of f1(n) = O(1)?

A : f1(n) = O(1) means that for all n> a certain value ( i.e. n0 ), f1 will be bounded by a constant value

Q : What is the meaning of f2(n) = O(n log n)?

A : f2(n) = O(n lg n) means that for all n> a certain value ( i.e. n0 ) f2 will be bounded by a constant number times n log n or f2 is in the same order of magnitude as f(n log n).

In general, f(n) = O(g(n)) means f(n) and g(n) are in the same order of magnitude (i.e. O(g(n))

CSC201 Analysis and Design of Algorithms

Apr 19, 2023 23

ExerciseExercise

1. What is the different between algorithms and programs?

2. What factors influence the performance of an algorithm?

3. How do we measure the performance of algorithms?

4. What are Big O, Big Theta, Big Omega?

5. Write Big-O of functions in ascending order

CSC201 Analysis and Design of Algorithms

Apr 19, 2023 24