14 Algorithms Every Programmer Needs To Know
14 Algorithms Every Programmer Needs To Know
Algorithms
Every Programmer Should Know
Basic to Advance
1. Searching Algorithms
Linear Search:
Search each and every element of the
array till you find the
required element
Binary Search:
Searches for the element by comparing
it with the middle item
of the sorted array.
If a match occurs, index is returned, else
the
searching area is reduced appropriately to
either the
upper half or lower half of the array
1
2. Sorting Algorithms
Bubble Sort:
Works by swapping adjacent elements
in repeated passes, if
they are not in correct
order.High time complexity and not
suitable
for large datasets
Time Complexity: O (n2)
Insertion Sort:
The array is split into sorted and unsorted
parts. Unsorted
elements are picked and
placed at their correct position in
the
sorted part
Time Complexity: O (n2)
Selection Sort:
The smallest value among the unsorted
elements of the array
is selected in every
pass and inserted to its appropriate
position into the array
Time Complexity: O (n2)
2
Heap Sort:
Uses the property of max and min heaps
having largest and
smallest elements at
the root level It is an inplace sorting
algorithm
Time Complexity: O (nlogn)
Merge Sort:
Repeatedly divide the array into half,
sort the halves and then
combine them.
It is a divide and conquer algorithm
Time Complexity: O (nlog(n))
Quick Sort:
A pivot element is picked and the
partitions made around it
are again
recursively partitioned and sorted.
It is a divide and
conquer algorithm.
Time Complexity: O (nlog(n))
3
3. Basic Math Algorithms
Euclid's Algorithm for GCD:
Works by recursively dividing the bigger
number with smaller
number until the
remainder is zero to get the greatest
common divisor
Sieve of Eratosthenes:
Used for finding all prime numbers up
to a given number by
iteratively marking
and removing the multiples of composite
numbers
Bit Manipulations:
Perform operations at the bit-level or to
manipulate bits in
different ways by using
bitwise operators AND, OR, NOT, XOR
4
4. Graph Algorithms
Breadth First Search and
Dijkstra's Algorithm:
Used to find the shortest path between
two vertices in a
graph. It is a greedy
algorithm
5
5. Algorithms
Tree
Inorder Traversal:
Traverse the left
subtree, visit the root node and then the
right
subtree
Preorder Traversal:
Visit the root node,
traverse the left subtree and then the right
subtree
Postorder Traversal:
Traverse the left
subtree, then the right subtree and then
visit
the root node
Time complexity: O(n)
6
Kruskal's Algorithm:
7
6. Dynamic Programming
Dynamic Programming works by storing
the result of
subproblems to access when
needed without
recalculation.
8
7. Backtracking Algorithms
Solving problems by trying to build a
solution one piece
at a time, removing
those solutions that fail to satisfy
the
constraints of the problem.
9
8. Coding
Huffman
Compression Algorithm
It is a technique of compressing data to
reduce its size
without losing any of the
details. Generally useful to
compress data
with frequently occurring characters
Involves two major parts:
Building a Huffman tre
Traversing the tree and assigning codes
to characters
based on their frequency of
occurrence
10
ABOUT BOSSCODER
Bosscoder is an online upskilling platform for techies. We help learners
upskill in tech roles to get them placed at top tech companies.
Live Classes:
Personal mentors from top tech companies help you provide the right
guidance, feedback, and support.
Industry-relevant projects:
Placement Support:
11
BUILD YOUR CAREER
WITH US
750+ Alumni placed at Top Product-based companies.
12
Vishal Srivastava Ujesh Nada
Before After
Before After
Cognizant
Barclays
Programmer Analyst
Byju’s
Google
Software Developer
Trainee BDA SDE
After Before
After
Before
Hashedin
G Pulla Reddy
Synopsys
Wipro
Senior Python
Engineering College
R&D Engineer
Software Engineer Developer Sudent
13
Sarveshwar Neogi Aarushi Jain
KIIT
Sprinkler
NIT Delhi
Atlassian
IHS Markit
Jubilant Foodworks
NIT Delhi
ByteDance
14
Want to Upskill?
ask@bosscoderacademy.com
VISIT WEBSITE
www.bosscoderacademy.com