From the start of the primary programming lingos to the state of the art programming vernaculars by and by being utilized, PC programming has fostered a significant sum. It has now turned into even more wonderful, capable, and advanced. Regardless, the foremost thoughts and use of data plan and estimations in PC programming have not changed. DSA has been the focal point of PC programming from the beginning.
Data Structures and Algorithms are the reason of Computer Science. From Operating Systems to Web Development, you will go over incredible uses of DSA.
Usages of Data Structures
• Music Queues-- When you are focusing on your #1 music, you might add a couple of songs to the line, which plays in the sequential solicitation as added.
• Browser History-- As we arrange forward and backward through pages in a program using the back and next buttons, these are fundamental usages of associated records.
• Process Stack--Every cycle at this point running on your phone or your PC has a held piece of memory for its stack. Which stores all of the central data relating to the program. For example, neighborhood factors, return regards, work limits, etc.
Employments of Algorithms
• Path Finding Algorithms: These algos are used in finding the briefest or the speediest way in an enormous association. Like settling mazes, examination, etc Eg: Dijkstra's Algorithm, A* Algorithm, etc
• Cryptographic Algorithms: Coming to security, data encryption and progressed marks are used everywhere. From your web program to your PDF archives. A for the most part used one is the RSA Algorithm which is a disproportionate computation used for exchanging keys between two social occasions through a temperamental association.
What is Data Structure and Algorithm (DSA)?
Information design and calculations is a part of software
engineering that arrangements with making machine-proficient and upgraded PC
programs. The term Data Structure alludes to the capacity and association of
information, and Algorithm alludes to the bit by bit method to tackle an issue.
By consolidating "information construction" and
"calculation", we upgrade the codes in programming.
Data structures and algorithms syllabus for placement
- Git &
GitHub basic
- Introduction to
Programming
- Types of
languages
- Memory
management
- Flow of the
program
- Flowcharts
- Pseudocode
- Introduction to
programming
- Introduction
- How it works
- Setup
Installation
- Input and
Output
- Conditionals
& Loops
- if-else
- loops
- Switch
statements
- Data-types
- Coding best
practices
- Functions
- Introduction
- Scoping
- Shadowing
- Variable
Length Arguments
- Overloading
- Arrays
- Introduction
- Memory
management
- Input and
Output
- ArrayList
- Searching
- Linear Search
- Binary Search
- Modified
Binary Search
- Binary Search
on 2D Arrays
- Sorting
- Insertion
Sort
- Selection
Sort
- Bubble Sort
- Count Sort
- Radix Sort
- Cyclic Sort
- Sliding window
- Two Pointer
- Subarray
Questions
- Pattern
questions
- Strings
- Introduction
- How Strings
work
- Comparison of
methods
- Operations in
Strings
- StringBuilder
- Maths for DSA
- Introduction
- Complete
Bitwise Operators
- Prime numbers
- HCF / LCM
- Sieve of
Eratosthenes
- Newton's
Square Root Method
- Number Theory
- Euclidean
algorithm
- Recursion
- Introduction
- Why recursion?
- Flow of
recursive programs - stacks
- Convert
recursion to iteration
- Tree building
of function calls
- Tail recursion
- Sorting:
- Merge Sort
- Quick Sort
- Backtracking
- Sudoku Solver
- N-Queens
- N-Knights
- Maze problems
- Recursion
String Problems
- Recursion
Array Problems
- Recursion
Pattern Problems
- Subset
Questions
- Space and Time
Complexity Analysis
- Introduction
- Comparisons of
various cases
- Solving Linear
Recurrence Relations
- Solving Divide
and Conquer Recurrence Relations
- Big-O,
Big-Omega, Big-Theta Notations
- Get equation
of any relation easily - best and easiest approach
- Complexity
discussion of all the problems we do
- Space
Complexity
- Memory
Allocation of various languages
- NP-Completeness
and Hardness
- Object Oriented
Programming
- Introduction
- Classes &
its instances
- this keyword
in Java
- Properties
- Inheritance
- Abstraction
- Polymorphism
- Encapsulation
- Overloading
& Overriding
- Static &
Non-Static
- Access Control
- Interfaces
- Abstract
Classes
- Singleton
Class
- final,
finalize, finally
- Object Class
- Generics
- Exception
Handling
- Collections
Framework
- Lambda
Expression
- Enums
- Fast IO
- Greedy
Algorithms
- Stacks &
Queues
- Introduction
- Interview
problems
- Push efficient
- Pop efficient
- Queue using
Stack and Vice versa
- Circular Queue
- Linked List
- Introduction
- Fast and slow
pointer
- Cycle
Detection
- Single and
Doubly LinkedList
- Reversal of
LinkedList
- Dynamic
Programming
- Introduction
- Recursion +
Recursion DP + Iteration + Iteration Space Optimized
- Complexity
Analysis
- 0/1 Knapsack
- Subset
Questions
- Unbounded
Knapsack
- Subsequence
questions
- String DP
- Trees
- Introduction
- Binary Trees
- Binary Search
Trees
- DFS
- BFS
- AVL Trees
- Segment Tree
- Fenwick Tree /
Binary Indexed Tree
- Square Root
Decomposition
- Heaps
- Introduction
- Theory
- Priority Queue
- Heapsort
- Two Heaps
Method
- k-way merge
- Top k elements
- Interval
problems
- HashMap
- Introduction
- Theory - how
it works
- Comparisons of
various forms
- Limitations
and how to solve
- Map using
LinkedList
- Map using Hash
- Chaining
- Probing
- Huffman-Encoder
- Tries
- Graphs
- Introduction
- BFS
- DFS
- Working with
graph components
- Minimum
Spanning Trees
- Kruskal
Algorithm
- Prims
Algorithm
- Dijkstra’s
shortest path algorithm
- Topological
Sort
- Bellman ford
- A* pathfinding
Algorithm
- Advanced
Concepts for CP
- Bitwise + DP
- Extended
Euclidean algorithm
- Modulo
Properties
- Modulo
Multiplicative Inverse
- Linear
Diophantine Equations
- Fermat’s
Theorem
- Wilson's
Theorem
- Lucas Theorem
- Chinese
Remainder Theorem
- Advanced
Concepts for CP
- Bitwise + DP
- Extended
Euclidean algorithm
- Modulo
Properties
- Modulo
Multiplicative Inverse
- Linear
Diophantine Equations
- Fermat’s
Theorem
- Wilson's
Theorem
- Lucas Theorem
- Chinese
Remainder Theorem
- Advanced
Concepts for CP
- Bitwise + DP
- Extended Euclidean algorithm
- Modulo Properties
- Modulo Multiplicative Inverse
- Linear Diophantine Equations
- Fermat’s Theorem
- Wilson's Theorem
- Lucas Theorem
- Chinese Remainder Theorem