This whole DSA course focus on giving the insight of different kind of data structures that could be used while dealing with a variety of data that needs to be stored depending upon the circumstances.
The course also focus on how to reduce the complexity of a code by teaching us the variety of approaches that could be employed for a solving the same problem such that the complexity reduces greatly in terms of time and space.
2. Introduction
• Data structure can be defined as the group of data elements which provides
an efficient way of storing and organising data in the computer.
• Data Structure are widely used in almost every aspect of Computer Science
i.e Operating System, Compiler design, Artificial Intelligence, Graphics and
many more.
• Some example of Data Structure are arrays, Linked List, Stack, Queue etc.
• Data Structure are the building blocks of any program or the software.
4. Mathematics:-
We have learnt all the topics are mathematics like gcd, lcm, hcf and Chinese remainder
theorem etc.
Bit Magic:-
Bit magic implements algorithms for high-performance scientific computing : binary
similarity and clustering of binary sets.
Recursion:-
Some computer programming languages allow a module or function to call itself.
This technique is known as recursion.
Array:-
An array is a collection of homogeneous(same type) data items
5. stored in contiguous memory locations.
For example:- if an array is of type “int”, it can only store integer elements and cannot allow the
elements of other types such as double, float, char etc.
Searching:-
Searching is the process of finding a given value position in a list of values.
It decides whether a search key is present in the data or not.
Sorting:-
Sorting refers to arranging data in a particular format.
Sorting algorithm specifies the way to arrange data in a particular order.
6. Matrix:-
Matrix is a way to store data in an organized form in the form of rows and columns.Matrix
are usually used in computer graphics to project 3-dimensional space onto a 2-
dimensional screen.
String:-
A string is generally considered as a data type and is often implemented as an array data
structure of bytes(or words) that stores a sequence of Elements, typically characters.
Linked List:-
A linked list is a linear collection of data elements whose order is not given by their
physical placement in Memory.
Each element points to the next.
7. Stack:-
Stack is a linear data structure which follows a particular order in which the operations
are performed.
The order may be LIFO or FILO.
Queue:-
Queue is an abstract Data Structure, a stack is open both its Ends. One end is always
used to insert the data(enqueue) and the other is used to remove the data(dequeue).
It follows FIFO methodology.
Tree:-
A tree is widely used abstract data type that simulates a hierarchical tree structure with a
root value and subtree of children
8. with a parent Node, represented as a set of linked nodes.
Binary Search Tree:-
A binary search tree also called an ordered or sorted binary tree, is a rooted binary tree
whose internal nodes which stores a key greater than all the keys in the node's left
subtree and less than those in its right subtree.
Heap:-
A heap is a specialized tree based data structure that satisfied the heap Property.
This implies that an element with the greatest key is always in the root node, and so
such a heap is sometimes called a max-heap.
Of course there's also called a min-heap.
9. Graph:-
A graph is a non-linear data structure consisting of nodes and edges.The nodes are
sometimes also referred to as vertices and the edges are lines that connect any two
nodes in the graph.
Backtracking:-
Backtracking is an algorithmic-technique for solving problems recursively by trying to
build a solution incrementally.
Dynamic Programming:-
Dynamic programming approach is similar to divide and conquer in breaking down the
problem into smaller and yet smaller possible Sub-Problems.
It is a powerful technique that can be used to solve many problems in time O(n^2) or
O(n^3) .
10. Conclusion:-
A module on Algorithms and Data Structures is supposed to make you better
programmers. We do that by stepping away from actual programming, and try to view
computer programs from the outside. We shall learn to solve problems, describe
solutions, analyse properties of the program, and prove correctness without being
distracted by the details of implementation.
The key skills and competencies to learn are:
1. Being able to communicate, discuss, and evaluate potential solutions and partial
designs for computer programs.
2. being able to prove that an algorithm is correct.
3. being able to assess the runtime complexity of an an algorithm.