Data Structures And Algorithms(DSA)

Unit I. Introduction to Algorithm and Data Structures (09 Hours)

Algorithms- Problem Solving, Introduction to Algorithms, Characteristics of algorithms,

Algorithm design tools: Pseudo code and flowchart, Analysis of Algorithms, Complexity of algorithms- Space complexity, Time complexity, Asymptotic notation- Big-O, Theta and Omega,standard measures of efficiency. Data Structures- Data structure, Abstract Data Types (ADT), Concept of linear and Non-linear,static and dynamic, persistent and ephemeral data structures, and relationship among data, data structure, and algorithm, From Problem to Program. Algorithmic Strategies- Introduction to algorithm design strategies- Divide and Conquer, and Greedy strategy. Recurrence relation - Recurrence Relation, Linear Recurrence Relations, With constant Coefficients, Homogeneous Solutions. Solving recurrence relations

Unit II. Linear Data Structures Using Sequential Organization  (09 Hours)

Sequential Organization, Linear Data Structure Using Sequential Organization, Array as an Abstract Data Type, Memory Representation and Address Calculation, Inserting an element into an array, Deleting an element, Multidimensional Arrays, Two-dimensional arrays, n- dimensional arrays, Concept of Ordered List, Single Variable Polynomial, Representation using arrays,Polynomial as array of structure, Polynomial addition, Polynomial multiplication, Sparse Matrix,Sparse matrix representation, Sparse matrix addition, Transpose of sparse matrix, String Manipulation Using Array. Case Study- Use of sparse matrix in Social Networks and Maps.

Unit III. Linked Lists  (09 Hours)

Concept, Comparison of sequential and linked organizations, Primitive operations, Realization of Linked Lists, Realization of linked list using arrays, Dynamic Memory Management, Linked list using dynamic memory management, Linked List Abstract Data Type, Linked list operations,Head pointer and header node, Types of linked list- Linear and circular linked lists, Doubly Linked List and operations, Circular Linked List, Singly circular linked list, Doubly circular linked list, Polynomial Manipulations - Polynomial addition, Multiplication of two polynomials using linked list. Generalized Linked List (GLL) concept, representation of polynomial and sets using GLL. Case Study- Garbage Collection.

Unit IV. Stacks  (09 Hours)

Stacks- concept, Primitive operations, Stack Abstract Data Type, Representation of Stacks Using Sequential Organization, stack operations, Multiple Stacks, Applications of Stack- Expression Evaluation and Conversion, Polish notation and expression conversion, Need for prefix and postfix expressions, Postfix expression evaluation, Linked Stack and Operations. Recursion- concept, variants of recursion- direct, indirect, tail and tree, Backtracking

algorithmic strategy, use of stack in backtracking. Case Study- 4 Queens problem, Android- multiple tasks/multiple activities and back stack.

Unit V. Queues (09 Hours)

Concept, Queue as Abstract Data Type, Realization of Queues Using Arrays , Circular Queue,Advantages of using circular queues, Multi-queues, Deque, Priority Queue, Array implementation of priority queue, Linked Queue and operations. Case study- Priority queue in bandwidth management.

Unit VI.Sorting and Searching  (09 Hours)

Searching- Search Techniques, Sequential search, variant of sequential search- sentinel search,Binary search, Fibonacci search. Case Study- Use of Fibonacci search in non-uniform access memory storage and in Optimization of Unimodal Functions. Sorting- Types of sorting-Internal and external sorting, General sort concepts-sort order, stability, efficiency, number of passes, Sorting methods- Bubble sort, Insertion sort, Selection sort, Quick sort, Heap sort, Shell sort, Bucket sort, Radix sort, Comparison of All Sorting Methods. Case Study- Timsort as a hybrid stable sorting algorithm.