Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction To Algorithm and Data Structures Course Teacher: Moona Kanwal -Algorithm Design -Algorithm Analysis -Data structures -Abstract Data Type.

Similar presentations


Presentation on theme: "Introduction To Algorithm and Data Structures Course Teacher: Moona Kanwal -Algorithm Design -Algorithm Analysis -Data structures -Abstract Data Type."— Presentation transcript:

1 Introduction To Algorithm and Data Structures Course Teacher: Moona Kanwal -Algorithm Design -Algorithm Analysis -Data structures -Abstract Data Type

2 Program Design WHAT the program must do and not HOW to do Abstraction: –A model of a complex system that includes only the details essential to the perspective of the viewer of the system Information Hiding –The practice of hiding the details of a function or data structure with the goal of controlling access to the details of module or structure

3 Program Design Functional Decomposition –Method for designing software –Top-down design –Divide the problem in to modules.. –Divide –and-conquer till we reach a level that can easily be translated into algorithm –The hierarchy of task is controlled by main function or program

4 Introduction An algorithm is a set of rules for carrying out calculation either by hand or on a machine An algorithm is a finite step-by-step procedure to achieve a required result An algorithm is a sequence of computational steps that transform the input into the output. An algorithm is a sequence of operations performed on data that have to be organized in data structures. An algorithm is an abstraction of a program to be executed on a physical machine (model of Computation).

5 The Classic Multiplication Algorithm Multiplication, the American way –Multiply the multiplicand one after another by each digit of the multiplier taken from right to left.

6 Multiplication Problem Multiplication, the English way: –Multiply the multiplicand one after another by each digit of the multiplier taken from left to right.

7 Algorithm Design Algorithmic is a branch of computer science that consists of designing and analyzing computer algorithms The “design” pertain to –The description of algorithm at an abstract level by means of a pseudo language, and –Proof of correctness that is, the algorithm solves the given problem in all cases. The “analysis” deals with performance evaluation (complexity analysis).

8 Algorithm Performance Analysis Does the program efficiently use primary and secondary storage? Is the program running time acceptable for the task? Space Complexity –The space complexity of a program is the measure of the amount of memory that it needs to run to completion Time complexity –The Time complexity of a program is the measure of the amount of computer time it needs to run to completion

9 Performance Estimation How to determine which algorithm is better? We need some mechanism to predict the performance with out actually executing the program Mechanism should be independent of the compiler and underlying hardware

10 Algorithm Analysis The complexity of an algorithm is a function g(n) that gives bound of the number of operation (or running time) performed by an algorithm when the input size is n There are two interpretations of bound. Worst-case Complexity –The running time for any given size input will be lower than the upper bound except possibly for some values of the input where the maximum is reached. Big O is used to calculate the worst case complexity for an algorithm Average-case Complexity –The running time for any given size input will be the average number of operations over all problem instances for a given size Best-case complexity –The best case of the algorithm is the function is defined by the minimum number of steps taken on any instance of size n.

11 Big-Oh(O) Determining the exact step count of the program can be very difficult task Because of the in exactness of the definition of the step, exact step count is not very useful for comparative purposes E.g. which one is better –45n+3 or 100n+10 We use some asymptotic notation for measure of growth

12 Some useful Big-O estimates O(1): constant O(log(n)): Logarithm O(n): Linear O(nlog(n)): Log Linear O(n 2 ): Quadratic O(n 3 ):cubic O(2 n ):exponential

13 Pseudocode 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] End if End for return currentMax Example: find max element of an array

14 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

15 Psuedocode-Another Example CheckInBook(library, book, fineSlip) Function: Checks in a book Input: A Record of library, A book as String, Output: fineSlip as String, updated record of library precondition: book was checked out of this library, book is presented atthe check-in- desk postcondition: fineSlip is issued if the book is overdue, contents of the library are the original contents +book

16 Algorithm: 1. Examine due date to see whether the book is late 2. if the book is late a. calculate fine b. Issue fineSlip 3. Update library records to show that the book has been returned 4. check reserve list to see if someone is waiting for the book 5. If book is on reserve list a. put the book on the reserve shelf 6. Else a. Replace the book on the proper shelf, according to the library shelf arrangement scheme

17 Abstraction vs Implemention –x (01000001)2 –If X is Character then x ‘A’ –If X is integer then x 65

18 Abstraction vs. Implementation User’s view (abstraction) System’s view (Implementation) 1 53 6 2 4 78 5 7 9 10 358 1 153 24 78579 35 8 1 6

19 Data structures The primary objective of programming is to efficiently process the input to generate the desired output We can achieve this objective in an efficient and neat style if the input data is organized in a way to help us meet our goal Data structures is nothing but ways and means of organizing data so that it can be processed easily and efficiently Data structure dictate the manner in which the data can be processed. In other words the choice of an algorithm depends upon the underlying data organization

20 Data Structures Data/InfoOperations Memory VariablesFunctions (Implemented By) Basic Data Types User Defined Functions Built In Functions Abstract Data Types Composite Data Types Are of (Manipulated By)

21 BASIC DATA TYPES Characters & character strings, integers, real nos, logical (bool). Basic DT's usually implemented in h/w These are native to the machines hardware, in most computers

22 COMPOSITE DATA TYPES Structures that are made up of simpler data structures that exist in the language are 'composite' or 'structured' data types. For e.g. arrays, structures and unions.

23 Data Abstraction and Abstract Data Types (ADT) A data type is a template for objects and a set of operations that define the behavior of the objects ( or Instances) of that type. An abstract Data Type (ADT) is a data type in which the implementation details are hidden and the user is concerned with the properties ( or behavior) of that type. An ADT has two components: - Interface (the behavior) - Implementation Example: - int, float

24 Implementation Abstract Data Type The data structures used to implement the data type can only be accessed through the interface. Any change in the implementation does not change the user programs as long as the interface remains the same This is also known as the data encapsulation or data abstraction. Interface 1 Interface 2 Interface 3 Interface 4 Implementation


Download ppt "Introduction To Algorithm and Data Structures Course Teacher: Moona Kanwal -Algorithm Design -Algorithm Analysis -Data structures -Abstract Data Type."

Similar presentations


Ads by Google