GithubHelp home page GithubHelp logo

datastructures's Introduction

Data Structures

Learn how to code and master algorithms and data structures. These are some of the programs from different sources that are found to be good.

How to get started

Image

This is a video from rachit jain, i found it to be consistent and very useful.

Learning Resources

I have some of the learning resources from Codechef

  1. Asymptotic analysis (Big-O notation).
    • Basic
      • youtube.com : Time complexity of a computer program
      • youtube.com : Big-O notation in 5 minutes - The basics
      • youtube.com : Definition Of Big O Notation - Intro to Theoretical Computer Science
      • youtube.com : Algorithms Lecture 1 -- Introduction to asymptotic notations
      • iarcs.org.in - Measuring the efficiency of algorithms
      • interactivepython.org - Particularly for Big-O notation
    • Advanced
      • rob-bell.net - A beginner's guide to Big O notation
      • youtube.com - Big O Notation, Gayle Laakman McDowell
      • web.mit.edu - Big O notation
      • youtube.com - Time and space complexity analysis of recursive programs - using factorial
      • A very nice tutorial with examples
    • Practice Problems
      • Check some MCQs on space and time complexity here.
      • You can see some problems with solutions here: Time complexity of an algorithm
  2. Arrays
    • Resources
      • codechef.com - Data Structure Tutorial: Array
      • cs.cmu.edu - Arrays
      • geeksforgeeks.org - Arrays Data Structure
    • Practice Problems
      • codechef.com - LECANDY, editorial
      • codechef.com - CNOTE, editorial ;
      • codechef.com - SALARY, editorial
      • codechef.com - CHN15A, editorial
      • codechef.com - RAINBOWA, editorial
      • codechef.com - FRGTNLNG, editorial
      • codechef.com - COPS, editorial
  3. Strings
    • Resources
      • tutorialspoint.com - C++ strings
      • guru99.com - Java strings
      • docs.python.org - Python strings
      • tutorialspoint.com - Python strings
      • geeksforgeeks.org - Many string questions
    • Practice Problems
      • codechef.com - CSUB, editorial
      • codechef.com - LAPIN, editorial
  4. Stack and Queue
    • Resources
      • geeksforgeeks.org - Stack Data Structure
      • geeksforgeeks.org - Introduction and Array Implementation
      • tutorialspoint.com - Data Structures Algorithms
      • cs.cmu.edu - Stacks
      • cs.cmu.edu - Stacks and Queues
      • cs.cmu.edu - Stacks and Queues
    • Practice Problems
      • spoj.com - JNEXT
      • spoj.com - STPAR
      • spoj.com - ONP
      • codechef.com - COMPILER
      • spoj.com - MMASS
      • spoj.com - HISTOGRA
      • codeforces.com - D. Maximum Xor Secondary
      • spoj.com - ANARC09A
      • codeforces.com - C. Minimal string
      • codeforces.com - B. Alternating Current
      • codeforces.com - C. Longest Regular Bracket Sequence
  5. Basic math operations (addition, subtraction, multiplication, division, exponentiation)
    • codechef.com - A tutorial on Fast Modulo Multiplication
  6. Euclid’s GCD Algorithm
    • Resources
      • youtube.com - Mycodeschool video
      • khanacademy.org - The Euclidean Algorithm
      • geeksforgeeks.org - Example program to find gcd in c++:
  7. Prime Numbers, divisibility of numbers
    • Resources:
      • Only O(sqrt(n)) algorithm for finding whether a number is a prime, factorization of a number.
      • Finding prime factors by taking the square root
    • Practice Problems:
      • community.topcoder.com - DivisorInc
      • community.topcoder.com - Prime Polynom
      • community.topcoder.com - Prime Anagrams
      • community.topcoder.com - Refactoring
  8. Basic Recursion
    • Resources
      • topcoder.com - An Introduction to Recursion, Part 1
      • topcoder.com - An Introduction to Recursion: Part 2
      • geeksforgeeks.org - Recursion ;(along with questions)
      • web.mit.edu - Recursion
      • csee.umbc.edu - Recursion ;(Examples with exercises)
      • loveforprogramming.quora.com - Backtracking, Memoization & Dynamic Programming
      • byte-by-byte - Recursion for Coding Interviews
    • Practice Problems
      • codechef.com - NOKIA, editorial
      • codechef.com - TRISQ, editorial
      • codechef.com - LFSTACK, editorial
      • codechef.com - FICE, editorial
  9. Greedy Algorithms
    • Resources
      • iarcs.org.in - Greedy Algorithms
      • iarcs.org.in - Greedy Algorithms
      • topcoder.com - Greedy Algorithms
      • Greedy Algorithms
    • Practice Problems
      • codechef.com - TACHSTCK, editorial
      • codechef.com - CIELRCPT, editorial
      • codechef.com - MAXDIFF, editorial
      • codechef.com - CHEFST, editorial
      • codechef.com - CAKEDOOM, editorial
      • codechef.com - CLETAB, editorial
      • codechef.com - TADELIVE, editorial
      • codechef.com - MANYCHEF, editorial
      • codechef.com - MMPROD, editorial
      • codechef.com - CHEFTMA, editorial
      • codechef.com - STICKS, editorial
      • spoj.com - BAISED
      • spoj.com - BALIFE
      • spoj.com - GCJ101BB
      • codechef.com - FGFS
      • codechef.com - KNPSK
      • codechef.com - LEMUSIC
      • spoj.com - ARRANGE
      • spoj.com - FASHION
  10. Dynamic programming (Basic DP) ◦ Resources - medium.freecodecamp.org - Demystifying Dynamic Programming - iarcs.org.in - Dynamic Programming - Tiling - topcoder.com - Dynamic Programming – From Novice to Advanced - illinois.edu - Dynamic Programming ;(Exercises are recommended) - codechef.com - Dynamic Programming - geeksforgeeks.org - Dynamic Programming ;(Contains a lot of practice sessions) - MIT OCW (Contains some Advanced topics as well) • Dynamic Programming I • Dynamic Programming II • Dynamic Programming III • Dynamic Programming IV ◦ Practice Problems - codechef.com - ALTARAY, editorial - codechef.com - DELISH, editorial - codechef.com - DBOY, editorial - codechef.com - XORSUB, editorial - codechef.com - GRID, editorial - codechef.com - TADELIVE, editorial - codechef.com - FROGV, editorial - codechef.com - MATRIX2, editorial - codechef.com - AMSGAME2, editorial - spoj.com - MDOLLS - spoj.com - MSTICK - spoj.com - MCARDS - spoj.com - MIXTURES - spoj.com - SAMER08D - spoj.com - AIBOHP
  11. Naive string searching ◦ Resources - geeksforgeeks.org - Naive Pattern Searching
  12. Sorting
    • khanacademy.org
    • visualgo.net
    • iarcs.org.in
    • Merge sort
      • youtube.com - Merge sort algorithm
      • Practice Problems codechef.com -MRGSRT
    • Quick sort
      • youtube.com - Quicksort algorithm
      • Practice Problems codechef.com -TSORT ◦ Counting sort
      • geeksforgeeks.org - Counting Sort
      • Practice Problems • codechef.com - TACHSTCK, editorial • codechef.com - STICKS, editorial
  13. Binary Search
    • Resources
      • topcoder.com (Try solving problems of Simple and Moderate level as mentioned in the end of the link)
      • codechef.com
      • usfca.edu
      • khanacademy.org ◦ Detailed Theoretical analysis
      • cmu.edu (A theoretical analysis) ◦ Problems
      • geeksforgeeks.org - Binary Search (Contains some solved problems)
      • codechef.com - STRSUB, editorial
      • codechef.com - ASHIGIFT, editorial
      • codechef.com - STACKS, editorial
      • codechef.com - DIVSET, editorial
      • codechef.com - LOWSUM, editorial
      • codechef.com - SNTEMPLE, editorial
      • codechef.com - SNAKEEAT, editorial
      • codechef.com - SCHEDULE, editorial
      • codechef.com - RIGHTTRI, editorial
      • codechef.com - FORESTGA, editorial
      • codechef.com - CHEFHCK2,editorial
      • spoj.com - ABCDEF
      • spoj.com - NOTATRI
      • spoj.com - SCALE
      • spoj.com - SUMFOUR
      • spoj.com - SUBSUMS
      • spoj.com - ANARC05B
      • spoj.com - RENT
      • spoj.com - PIE
      • spoj.com - MKUHAR
      • spoj.com - SVADA
      • spoj.com - SUBS
  • Past Test - https://www.codechef.com/FLPAST01
  • Test 1 - codechef.com/FLMOCK01
  • Test 2 - codechef.com/FLMOCK02
  • Test 3 - codechef.com/FLMOCK03
  • Test 4 - codechef.com/FLMOCK04

datastructures's People

Contributors

algokun 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.