Saturday, July 7, 2018

What algorithms Should I learn to become a good Programmer?

In this post you will understand what kind of algorithms must learn to become a good Programmer or Developer. In mathematics and computer science, an algorithm  is an unambiguous specification of how to solve a class of problems. It is a step by step method of solving a problem.

A programming algorithm is a computer procedure 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.

In mathematics and computer science, an algorithm  is an unambiguous specification of how to solve a class of problems. It is a step by step method of solving a problem.



The following are the Basic Data Structures and Algorithms:

First start with Linear Data Structures and algorithms


  • Arrays
  • Linked List
  • Stack
  • Queues

Then move to basic algorithms :

Sorting:


  • Merge Sort
  • Quick Sort
  • Bubble Sort
  • Insertion Sort
  • Number of Inversions
  • Matrix Multiplicaton 
  • Fibonacci Number with Matrix Multiplication


Then you should learn Best algorithms Techniques:


  • Divide and Conquer
  • Greedy algorithm
  • Dynamic Programming
  • Linear Programming
  • String algorithms





After learning Basic data structures and algorithms now you should move to non-linear data structures. They are


  • Trees
  • Binary Search Tree- Inorder traversal
  • Heaps
  • Hash Table


Graphs:


  • Adjacency List
  • Adjacency Matrix
  • Breadth First Search
  • Deapth First Search
  • Floyd washal
  • Dijkstra
  • Bellman

Minimum Spanning Tree:

  • Kruskal's algo
  • Prim's Algo


Some advanced Tree and Graph:


  • AVL
  • Red-Black
  • Hamiltonian Cycle


some advanced String algorithms:


  • Rabin Karp Algorithm
  • Knuth Morris pratt Algorithm
  • Tries and compressed Tries
  • suffix Trees,prefix Trees


Computational geometry: Graham-Scan for convex hull, Line sweep.

Game theory: Basic principles of Nim game, Grundy numbers, Sprague-Grundy theorem.

1 comment:

High Paying Jobs after Learning Python

Everyone knows Python is one of the most demand Programming Language. It is a computer programming language to build web applications and sc...