1 / 20

Theory of Computer Science - Algorithms

Theory of Computer Science - Algorithms. Theory of Computer Science - Algorithms. Algorithm is a sequence of elementary operations that give solution to any problem from a specific class of problems in a finite number of steps .

tobias
Download Presentation

Theory of Computer Science - Algorithms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Theory of Computer Science - Algorithms

  2. Theory of Computer Science - Algorithms Algorithm is a sequence of elementary operations that give solution to any problem from a specific class of problems in a finite number of steps. elementary operations - one command precisely defined all elementary operations should be precisely defined: x<y precise definition x<<y without additional comment it is not precise definition any problem from a specific class of problems - not a specific,one problem but specific class of problems finite numbers of steps - algorithm must end and give a result

  3. Theory of Computer Science - Algorithms Features of a good algorithms finiteness - executed algorithm must have the end specificness - all operations and their order should be precisely defined efficiency - algorithm must give a result in a shortest way generality - algorithm must give solution to any problem from a specific class of problems correctness - must give a correct solution

  4. Theory of Computer Science - Algorithms Basic way in creating algorithms: problem definition problem analysis preparation of rules createconcise procedure for solving problem

  5. Theory of Computer Science - Algorithms Ways of describing algorithms: Recursive - mathematical function Natural language Flow chart – block diagram Formal languages

  6. Theory of Computer Science - Algorithms Recursive function - example: factorial n Problem is defined by itself: n! = n * (n-1)! if n = 1 then n!=1 and 0!=1 4!=4 * (4-1)! = 4 * 3! 3!= 3 * 2! 2!= 2 * 1!= 2 * 1

  7. Theory of Computer Science - Algorithms Ways of describing algorithms: Recursive - mathematical function n! = n * (n-1)! advantage: high precision disadvantage: can describe onlyfew kinds of problems

  8. Theory of Computer Science - Algorithms Natural language - example Give an algorithm of finding the value: y = Max{ xi }, where 1 ≤ i ≤ n 1. i ← 1, go to 2 2. y ← xi, go to 3 3. whether i = n ? If yes – the end, if no – go to 4 4. i ← i + 1, go to 5 5. whether xi > y ? If yes – go to 2, if no– go to 3

  9. Theory of Computer Science - Algorithms Natural language – example: y = Max{ xi }, where 1 ≤ i ≤ n sequence x: 3 4 2 5 quantity of x elements: n = 4 index of processing element: i=? present maximum: y=? 1. i ← 1, go to 2 2. y ← xi, go to 3 3. whether i = n ? If yes – the end, if no – go to 4 4. i ← i + 1, go to 5 5. whether xi > y ? If yes – go to 2, if no– go to 3

  10. Theory of Computer Science - Algorithms Ways of describing algorithms: Natural language advantage: easy to understand, simplicity, no need to use special conventions, wide vocabulary disadvantage: lack of precision, possibility of misunderstanding

  11. Theory of Computer Science - Algorithms Flow chart-block diagram computational transaction, process decision - testing condition begining and the end of algorithm input/output operations connecting element, direction

  12. Theory of Computer Science - Algorithms Flow chart– example: y = Max{ xi }, where 1 ≤ i ≤ n

  13. Theory of Computer Science - Algorithms Ways of describing algorithms: Flow chartformal way of describing algorithm advantage: precise, can be used at every level of software development, flexible disadvantage: technical difficulty of representing large algorithms

  14. Theory of Computer Science - Algorithms Formal languages– example: y = Max{ xi }, where 1 ≤ i ≤ n The same algorithm presenting with Pascal function Max( x : array of integer ) : integer; var i, y : integer; begin y := x[ 1 ]; for i := 2 to n do if x[ i ] > y then y := x[ i ]; Max := y; end;

  15. Theory of Computer Science - Algorithms Formal languages– example: y = Max{ xi }, where 1 ≤ i ≤ n The same algorithm presenting with C int Max( int *x ) { int i; int y = x[0]; for( i = 1; i < n; i++ ) if( x[i] > y ) y = x[i]; return y; }

  16. Theory of Computer Science - Algorithms Ways of describing algorithms: Formal languages – programming languages advantage: precision, executive disadvantage: you have to know the language – difficulty of learning the language

  17. Theory of Computer Science - Algorithms Sequence algorithm The previous algorithm was a sequence algorithm. instructions are executed one after one n + 1 – amount of algorithm’s operations Oi – operation number i t( x ) – moment of time when is executed operation x This is always true that: moment of time, when is the end of previous operation, is in the some time or earlier, then the beginning of next operation.

  18. Theory of Computer Science - Algorithms Parallelalgorithm At least 2 operations can be executed in the some time n + 1 – amount of algorithm’s operations Oi – operation number i t( x ) – moment of time when is executed operation x There is moment of time, when the end of previous operation, is later, then the beginning of next operation.

  19. Theory of Computer Science - Algorithms Way of comparing algorithms: Time complexityHow much time is required to execute algorithm (usually we don’t measure time but steps) Space/memory complexity How much memory space is required, to execute the algorithm

  20. Theory of Computer Science - Algorithms Conclusions In most cases the increase in space complexity, causes the decrease in time complexity and vice versa. Processed data, have implication on execution time and needed memory. Pessimistic and average efficiency, have implication on algorithm’s application. In parallel algorithms, amount of processors, have implication on time execution. The more processors, the shorter time. But there is limited amount of processors, for each algorithm, where if we use more processors above this limit, it doesn’t increase the time.

More Related