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.
This is a video from rachit jain, i found it to be consistent and very useful.
I have some of the learning resources from Codechef
- 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
- Basic
- 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
- Resources
- 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
- Resources
- 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
- Resources
- Basic math operations (addition, subtraction, multiplication, division, exponentiation)
- codechef.com - A tutorial on Fast Modulo Multiplication
- Euclid’s GCD Algorithm
- Resources
- youtube.com - Mycodeschool video
- khanacademy.org - The Euclidean Algorithm
- geeksforgeeks.org - Example program to find gcd in c++:
- Resources
- 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
- Resources:
- 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
- Resources
- 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
- Resources
- 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
- Naive string searching ◦ Resources - geeksforgeeks.org - Naive Pattern Searching
- 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
- 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
- Resources
- 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