GithubHelp home page GithubHelp logo

py-data-structures's Introduction

py-data-structures

How to get started:

Day 1:

Understand the concept of Algorithmic complexity. Skip the theory for now, but for every piece of code you write, you should be able to derive both time and space complexity.

Day 2 - 10: Let’s start with some simple data structures

  • Arrays
  • Linked Lists
  • Strings
  • Stacks
  • Queues

Understand their basic operations (insert, delete, search, traversal) and their complexity - Big-O Algorithm Complexity Cheat Sheet, and code them all.

Day 11 - 25: Let’s now learn some simple algorithms,

  • Sorting - Insertion sort, Merge sort, Quick sort, Heap sort, Bucket sort, Counting sort, Radix sort, External sorting
  • Search - Linear search, Binary Search (along with its variants).
  • Prime Numbers - Sieve of Eratosthenes, Primality test
  • Strings - String searching, LCS, Palindrome detection
  • Miscellaneous - Euclidean algorithm, Matrix multiplication, Fibonacci Numbers, Pascal's Triangle, Max Subarray problem

Day 26 - 50: Once you are comfortable with everything above, start doing problems from,

  • Cracking the Coding Interview
  • Elements of Programming Interviews
  • Programming Interviews Exposed: Secrets to Landing Your Next Job
  • GeeksforGeeks
  • HackerRank
  • InterviewBit
  • Stick to chapters of arrays, linked lists, strings, stacks, queues and complexity.

Day 51 - 60: Let’s learn some non-linear data structures,

  • Tree
  • Binary Tree, Binary Search Tree - Tree traversals, Lowest common ancestor, Depth, Height & Diameter, Finding k-th smallest element
  • Heaps
  • Hash table - 4 sum problem, Checking if sudoku solution is valid
  • Graph - Breadth-first search, Depth-first search, Topological sorting, Minimum spanning tree, Shortest path problem,

Day 61- 90:

  • Refer to the previous resources and start doing problems from trees, hash tables, heaps and graphs.

Day 91 - 100:

  • Understand Computational complexity theory and NP-completeness, Knapsack problem, Travelling salesman problem, SAT problem and so on.

Day 101 - ∞ :

You are now better than most of the CS undergrads. Keep revising the above topics and start competitive programming! Good luck!

py-data-structures's People

Contributors

smandal047 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.