0% found this document useful (0 votes)
90 views

Design and Analysis of Algorithms CSC201: Shahid Hussain

This document outlines the course Design and Analysis of Algorithms. It lists recommended textbooks and provides a detailed course outline covering topics like data structures, algorithms, asymptotic analysis, sorting, searching, graphs, greedy algorithms, dynamic programming, and NP-complete problems. It also includes a recap of common data structures like arrays, stacks, queues, linked lists, trees, and graphs as well as basic operations on data structures like insertion, deletion, sorting, and searching.

Uploaded by

hira
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
90 views

Design and Analysis of Algorithms CSC201: Shahid Hussain

This document outlines the course Design and Analysis of Algorithms. It lists recommended textbooks and provides a detailed course outline covering topics like data structures, algorithms, asymptotic analysis, sorting, searching, graphs, greedy algorithms, dynamic programming, and NP-complete problems. It also includes a recap of common data structures like arrays, stacks, queues, linked lists, trees, and graphs as well as basic operations on data structures like insertion, deletion, sorting, and searching.

Uploaded by

hira
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 18

Design and Analysis of Algorithms

CSC201

Shahid Hussain

1
Books

 Introduction to Algorithms (Second Edition) T.H. Cormen, C.E.


Leiserson, R.N. Rivest, C. Stein - McGraw Hill - MIT Press,
2001
 Computer Algorithms: Introduction to Design and Analysis,
Sara Baase, Allen Van Gelder, Prentice hall, 1999
 Introduction to Algorithms, A Creative Approach, Udi Manber,
Addison-Wesley, 1989.

2
Course Outline

 Data Structure (Recap)


 Introduction of Algorithms and its notation
 Basics algorithms and its analysis
 Asymptotic notations
 Recursion and recurrence relations
 Divide-and-conquer approach
 Sorting; Search trees
 Hashing

3
Course Outline (Cont !!!)

 Binary Search Tree


 Graph algorithms; Shortest paths; Network flow; Disjoint Sets;
Polynomial and matrix calculations;
 Greedy approach
 Dynamic programming
 String matching algorithms
 Amortized analysis
 NP complete problems

4
Data Structure Recap

5
Data Structure Recap

 The term data refer to collection of facts or figures


 There are two ways to process and manipulate data.
– Data Structure
 Refer to temporary and manipulation of data
 E.g. Variables and array of a procedural language

– Database
 Refer to Permanent storage and manipulation of data
 E.g. MS Access, Foxpro etc

 Data structure is way to process and manipulate data through set of operations

6
Data Structure Recap

 Consider following C language program

Main() Execute first time:


Output will 8
{
int a, b, c;
a=3;
Execute second and
b=5
other times.
// OR cin>>a>>b; Again Output will 8
c=a+b;
cout<<“Sum=“<<c;
}
What concluded here

7
Data Structure Recap

 Type of Data Structures according to the presentation of data (i.e. How data is
presented)
1. Linear Data Structure
1. Sequential Data Structures
1. Array
2. Queue
3. Stack
2. Pointer Data Structure (Linked List)
2. Non Linear Data Structure
1. Tree
2. Graphs

8
Data Structure Recap

 Type of Data Structures according to memory representation


1. Logical Data Structure
1. Map data according to partition structure of memory
2. E.g. One Dimensional Array
2. Physical Data Structures
1. Can not map data easily according to partition structure of memory
2. E.g Two Dimensional Array, Tree etc
3. A special method is needed to convert physical Data Structure into Logical, such as dope
vector is used to convert 2-D into 1-D.

9
Data Structure Recap

 Common operation for all Data Structure are.


– Insert ( Insert new item/element into a data structure)
– Delete (Remove an item from Data Structure)
– Sort (Use to arrange all items in either ascending or descending order)
– Search (Use to locate an element/item of a data structure)
– Merge (Use to combine the elements of more than one similarly data structure
– Traversing (Scanning or visit of each element for view etc)

10
Data Structure Recap

 Array
– Linear and sequential
– Array is combination of homogenous element with
 N Consecutive index numbers (Such as 1,2,3,4, . . .)
 Successive memory location (such as 102, 104, 106 . . . )
– Successive memory location depend on the size of data types, such as in C language size of integer data type is 2
bytes)
– Two types of array are commonly used.
 One Dimensional (1-D) ( Only logical data structure)
 Two Dimensional (2-D) (Physical Data structure)
– Dope Vector method is used to convert 2-D into 1-D

11
Data Structure Recap

 Stack Data Structure


– Linear and sequential
– Work on following principles
 LIFO (Last In First Out) OR Total
 FILO (First In Last Out) Size=
– Two Conditions are N=5
 Overflow (It will occur when stack is full and you try to insert new element)
 Underflow (It will occur when stack is empty and you try to delete an element)

12
Data Structure Recap

 Queue Data Structure


– Linear and sequential
– Work on following principles
 FIFO (First In First Out) OR
 LILO (Last In Last Out)
– Two Conditions are
 Overflow (It will occur when Queue is full and you try to insert new element)
 Underflow (It will occur when Queue is empty and you try to delete an element)
– Type of Queues are
 Circular Queue
 Priority Queue
 Double Ended Queue

13
Data Structure Recap

 Linked List Data Structure


– Linear and Pointer
– Each element of linked list represented through a node which have two , three or more parts
depends on types of linked list
– Type of Linked List are
 One way linked List
 Two Way linked List (Doubly Linked List)

14
Data Structure Recap

 Tree Data Structure


– Non Linear Data Structure
– Each element of linked list represented through a node which have two , three or more parts depends on
types of tree
– Type of Linked List are
 General Tree
 Binary Tree
 B+ Tree
 Balance and Unbalance Tree

15
Data Structure Recap

 Graph Data Structure


– Non Linear Data Structure
– Each element of linked list represented through a node
– Type of Graph are
 Connected Graph
 Weighted Graph

16
Summary

 Data structure is way for storing and manipulation of data


 Two main categories or types of data structure are linear and non linear data structure.
 In case of memory representation, data structure are of two types logical and physical data structure.
 Insert, Delete, Merge, Sort and search are common operations for all types of data structure.
 Array, Stack and Queue are linear and sequential data structures.
 Linked List is linear and pointer based data structure.
 Tree and graphs are non linear data structures

17
What to be Next

 In Next lecture, we will discuss algorithms, its characteristics and


convention.

18

You might also like