1 / 24

Introduction To Algorithm and Data Structures Course Teacher: Moona Kanwal

Introduction To Algorithm and Data Structures Course Teacher: Moona Kanwal. -Algorithm Design -Algorithm Analysis -Data structures -Abstract Data Type. Program Design. WHAT the program must do and not HOW to do Abstraction:

fpettitt
Download Presentation

Introduction To Algorithm and Data Structures Course Teacher: Moona Kanwal

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. 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(n2): Quadratic • O(n3):cubic • O(2n):exponential

  13. Example: find max element of an array AlgorithmarrayMax(A, n) Inputarray A of n integers Outputmaximum element of A currentMax:=A[0] fori:=1ton  1do ifA[i]  currentMaxthen currentMax:=A[i] End if End for returncurrentMax 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

  14. 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 returnexpression Expressions Assignment(like  in Java) Equality testing(like  in Java) n2 Superscripts and other mathematical formatting allowed Pseudocode Details

  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 1 6 5 3 4 2 7 8 7 5 10 9 3 5 8 1 User’s view (abstraction) 1 5 3 6 7 8 5 7 9 10 3 5 1 2 4 8 System’s view (Implementation)

  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/Info Operations (Manipulated By) (Implemented By) (Implemented By) Memory Variables Functions Are of Basic Data Types Composite Data Types Abstract Data Types Built In Functions User Defined Functions

  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. 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. Implementation Interface 2 Interface 1 Implementation Interface 3 Interface 4

More Related