# 5 Algorithms Every Programmer Should Know

Programming algorithms are computer procedures that is a lot like a recipe (called a procedure) and tells your computer precisely what steps to take to solve a problem or reach a goal.

Algorithms play an important role in the career of a software developer.

### Wondering why algorithm are important?

1. Gives you an idea if your program actually solves the problem.
2. Gives you an idea about under what circumstances your program will perform well.
3. Gives you an idea what parts of the program are important and what parts can be done any old way.

## Graphs:

Graphs are used to represent networks. Networks may include paths in a city or telephone network or circuit network. Graphs are also used in social networks like Facebook, LinkedIn, Instagram etc.

There are various processes done in graphs:

• Breadth First Search(BFS)
• Depth First Search(DFS)
• Dijkstra Algorithm
• Floyd Warshall Algorithm

## Dynamic Programming

Dynamic Programming(DP) helps in solving enormous, heavyweight programming problem that you can’t imagine solving on your own. DP helps you turn the big problem into small sub problems . Example:

• Longest Common Sequence
• Subset Sum Problem
• 0-1 Knapsack Problem

## Sorting Algorithms

Sorting Algorithms  are used to rearrange a given array or list element according to a comparison operator on the elements. Example:

• Quick Sort
• Merge Sort
• Bubble Sort
• Selection Sort

## Searching Algorithms

Searching Algorithms are used to check retrieve an element from any data structure where it is stored. Example:

• Binary Search
• Linear Search
• Interval search
• Fibonacci Search

## Hashing

Hashing Algorithms provide you with a one-way technique that you can use to mask your data, with a minimal chance that someone could reverse the hashed value back to the original value. Examples:

• MD5
• SHA-1
• SHA-2
• NTLM
• LANMAN