Data Structures and Algorithms

Hi all,
I need your help to make a list of most used data structures and algorithms along with their tutorials, implementation and some problems on them. It will be helpful to everyone in many ways. I request everyone to contribute to this list by providing links to tutorials, problems, etc. I will keep updating this list regularly.

  1. Binary Search :
    [Tutorial, Problems][1], [Tutorial, Implementation][2], [Problem][3]

  2. Quicksort :
    [Tutorial, Implementation][4], [Tutorial][5]

  3. Merge Sort :
    [Tutorial, Implementation][6], [Tutorial][7]

  4. Suffix Array :
    [Tutorial][8], [Tutorial, Implementation][9], [Tutorial, Implementation][10], [Problem][11], [Problem][12]

  5. Knuth-Morris-Pratt Algorithm (KMP) :
    [Tutorial][13], [Tutorial, Implementation][14], [Tutorial][15], [Problem][16]

  6. Rabin-Karp Algorithm :
    [Tutorial, Implementation][17], [Tutorial][18], [Problem][19], [Problem][20]

  7. Tries :
    [Tutorial, Problems][21], [Tutorial : I,][22] [II][23], [Tutorial][24], [Problem][25], [Problem][26], [Problem][27]

  8. Depth First Traversal of a graph :
    [Tutorial, Impelementation][28], [Tutorial, Problems][29], [Problem][30], [Problem][31], [Problem][32]

  9. Breadth First Traversal of a graph :
    [Tutorial, Impelementation][33], [Tutorial, Problems][34], [Problem][35], [Problem][36], [Problem][37], [Flood Fill][38]

  10. Dijkstra’s Algorithm :
    [Tutorial, Problems][39], [Problem][40], [Tutorial(greedy)][41], [Tutorial (with heap)][42], [Implementation][43], [Problem][44], [Problem][45]

  11. Binary Indexed Tree :
    [Tutorial, Problems][46], [Tutorial][47], [Original Paper][48], [Tutorial][49], [Tutorial][50], [Problem][51], [Problem][52],
    [Problem][53], [Problem][54], [Problem][55], [Problem][56], [Problem][57]

  12. Segment Tree (with lazy propagation) :
    [Tutorial, Implementation][58], [Tutorial][59], [Tutorial, Problems, Implementation][60], [Tutorial, Implementation and Various Uses][61], Persistent Segment Tree: [I][62], [II][63], problems same as BIT, [Problem][64], [Problem][65]/HLD is used as well/

  13. Z algorithm :
    [Tutorial, Problem][66], [Tutorial][67], [Tutorial][68], problems same as KMP.

  14. Floyd Warshall Algorithm :
    [Tutorial, Implementation][69], [Problem][70], [Problem][71]

  15. Sparse Table (LCP, RMQ) :
    [Tutorial, Problems][72], [Tutorial, Implementation(C++)][73], [Java implementation][74]

  16. Heap / Priority Queue / Heapsort :
    [Implementation, Explanation][75], [Tutorial][76], [Implementation][77], [Problem][78], Chapter from CLRS

  17. [Modular Multiplicative Inverse][79]

  18. Binomial coefficients (nCr % M): [Tutorial][80], [Tutorial][81], [Paper][82] (Link Not Working), [Problem][83]

  19. Suffix Automaton :
    [Detailed Paper][84], [Tutorial, Implementation (I)][85], [Tutorial, Implementation (II)][86], [Problem][87], [Problem][88], [Problem][89], [Problem][90], [Tutorial, Implementation][91]

  20. Lowest Common Ancestor :
    [Tutorial, Problems][92], [Paper][93], [Paper][94], [Problem][95], [Problem][96], [Problem][97]

  21. Counting Inversions :
    [Divide and Conquer][98], [Segment Tree][99], [Fenwick Tree][100], [Problem][101]

  22. [Euclid’s Extended Algorithm][102]

  23. Suffix Tree :
    [Tutorial][103], [Tutorial][104], [Intro][105], Construction : [I][106], [II][107], [Implementation][108], [Implementation][109], [Problem][110], [Problem][111], [Problem][112], [Problem][113]

  24. Dynamic Programming :
    Chapter from CLRS(essential), [Tutorial, Problems][114], [Problem][115], [Problem][116], [Problem][117], [Problem][118], [Tutorial][119], [Problem][120], [Problem][121], [Problem][122], [Longest Increasing Subsequence][123], [Bitmask DP][124], [Bitmask DP][125], [Optimization][126], [Problem][127], [Problem][128], [Problem][129], [Problem][130], [Problem][131], [Problem][132], [Problem][133], DP on Trees : [I][134], [II][135]

  25. Basic Data Structures :
    [Tutorial][136], [Stack Implementation][137], [Queue Implementation, Tutorial][138], [Linked List Implementation][139]

  26. [Logarithmic Exponentiation][140]

  27. Graphs :
    [Definition, Representation][141], [Definition, Representation][142], [Problem][143], [Problem][144]

  28. Minimum Spanning Tree :
    [Tutorial][145], [Tutorial, Kruskal’s Implementation][146], [Prim’s Implementation][147], [Problem][148], [Problem][149], [Problem][150], [Problem][151], [Problem][152]

  29. [Efficient Prime Factorization][153]

  30. Combinatorics :
    [Tutorial, Problems][154], [Problem][155], [Tutorial][156]

  31. Union Find/Disjoint Set :
    [Tutorial][157], [Tutorial, Problems][158], [Problem][159], [Problem][160], [Problem][161]

  32. Knapsack problem :
    [Solution, Implementation][162]

  33. Aho-Corasick String Matching Algorithm :
    [Tutorial][163], [Implementation][164], [Problem][165], [Problem][166], [Problem][167], [Problem][168]

  34. Strongly Connected Components :
    [Tutorial, Implementation][169], [Tutorial][170], [Problem][171], [Problem][172], [Problem][173]

  35. Bellman Ford algorithm :
    [Tutorial, Implementation][174], [Tutorial, Implementation][175], [Problem][176], [Problem][177]

  36. Heavy-light Decomposition :
    [Tutorial, Problems][178], [Tutorial, Implementation][179], [Tutorial][180], [Implementation][181], [Implementation][182], [Problem][183], [Problem][184], [Problem][185]

  37. Convex Hull :
    [Tutorial, Jarvis Algorithm Implementation][186], [Tutorial with Graham scan][187], [Tutorial][188], [Implementation][189], [Problem][190], [Problem][191], [Problem][192], [Problem][193], [Problem][194]

  38. Line Intersection :
    [Tutorial, Implementation][195], [Tutorial, Problems][196]

  39. [Sieve of Erastothenes][197]

  40. Interval Tree :
    [Tutorial, Implementation][198], [Problem][199], [Problem][200], [Problem][201], [Problem][202], [Problem][203], [Problem][204], [Tutorial][205]

  41. [Counting Sort][206]

  42. [Probabilities][207]

  43. Matrix Exponentiation :
    [Tutorial][208], [Tutorial][209]

  44. Network flow :
    [(Max Flow)Tutorial : I,][210] [II][211], [Max Flow(Ford-Fulkerson) Tutorial, Implementation][212], [(Min Cut) Tutorial, Implementation][213], [(Min Cost Flow)Tutorial : I,][214] [II,][215] [III][216], [Dinic’s Algorithm with Implementation][217], [Max flow by Edmonds Karp with Implementation][218], [Problem][219], [Problem][220], [Problem][221], [Problem][222], [Problem][223], [Problem][224], [Problem][225], [Problem][226], [Problem][227], [Problem][228], [Problem][229], [Problem][230], [Problem][231], [Problem][232], [Problem][233]

  45. K-d tree :
    [Tutorial][234], [Tutorial][235], [Implementation][236], [Problem][237]

  46. [Deque][238]

  47. Binary Search Tree :
    [Tutorial, Implementation][239], [Searching and Insertion][240], [Deletion][241]

  48. Quick Select :
    [Implementation][242], [Implementation][243]

  49. Treap/Cartesian Tree :
    [Tutorial(detailed)][244], [Tutorial, Implementation][245], [Uses and Problems][246], [Problem][247], [Problem][248]

  50. Game Theory :
    [Detailed Paper][249], [Tutorial, Problems][250], [Grundy Numbers][251], [Tutorial with example problems - I,][252] [II,][253] [III,][254] [IV][255], [Tutorial, Problems][256], [Problem][257], [Problem][258], [Problem][259], [Problem][260], [Problem][261], [Problem][262], [Problem][263], [Problem][264], [Problem][265], [Problem][266], [Problem][267], [Nim][268]

  51. STL (C++) :
    [I,][269] [II][270], [Crash Course][271]

  52. [Maximum Bipartite Matching][272]

  53. Manacher’s Algorithm :
    [Implementation][273], [Tutorial][274], [Tutorial, Implementation][275], [Tutorial, Implementation][276], [Problem][277], [Problem][278], [Problem][279]

  54. [Miller-Rabin Primality Test][280] :


[281]

 55. [Stable Marriage Problem][282]

 56. [Hungarian Algorithm][283], [Tutorial][284]

 57. [Sweep line Algorithm : I][285], [II][286]

 58. LCP :
 [Tutorial, Implementation][287], [Tutorial, Implementation][288]

 59. [Gaussian Elimination][289]

 60. [Pollard Rho Integer Factorization][290], [problem][291]

 61. [Topological Sorting][292]

 62. Detecting Cycles in a Graph : Directed - [I][293], [II][294]
     Undirected : [I][295]
 63. Geometry : [Basics][296], [Tutorial][297]

 64. Backtracking :
 [N queens problem][298], [Tug of War][299], [Sudoku][300]

 65. Eulerian and Hamiltonian Paths :
 [Tutorial][301], [Tutorial][302], [(Eulerian Path and Cycle)Implementation][303], [(Hamiltonian Cycle)Implementation][304]

 66. Graph Coloring :
 [Tutorial, Implementation][305]

 67. Meet in the Middle :
 [Tutorial][306], [Implementation][307]

 68. [Arbitrary Precision Integer(BigInt)][308], [II][309]

 69. [Radix Sort][310], [Bucket Sort][311]

 70. Johnson's Algorithm :
[Tutorial][312], [Tutorial][313], [Implementation][314]

 71. Maximal Matching in a General Graph :
 [Blossom/Edmond's Algorithm, Implementation][315], [Tutte Matrix][316], [Problem][317]

 72. Recursion : [I,][318] [II][319], [Towers of Hanoi][320] with [explanation][321]

 73. [Inclusion and Exclusion Principle : I][322], [II][323]

 74. [Co-ordinate Compression][324]

 75. Sqrt-Decomposition :
  [Tutorial][325], [Tutorial][326], [Problem][327], [Problem][328]

 76. Link-Cut Tree : 
 [Tutorial][329], [Wiki][330], [Tutorial, Implementation][331], [Problem][332], [Problem][333], [Problem][334], [Problem][335]

 77. Euler's Totient Function :
 [Explanation, Implementation, Problems][336], [Explanation, Problems][337]

 78. Burnside Lemma :
 [Tutorial][338], [Tutorial][339], [Problem][340]

 79. Edit/Levenshtein Distance :
 [Tutorial][341], [Introduction][342], [Tutorial][343], [Problem][344], [Problem][345]

 80. [Branch and Bound][346]

 81. [Math for Competitive Programming][347]

 82. Mo's Algorithm : [Tutorial and Problems][348]


  [1]: https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/
  [2]: http://geeksquiz.com/binary-search/
  [3]: http://www.spoj.com/problems/AGGRCOW
  [4]: http://geeksquiz.com/quick-sort/
  [5]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/sorting/
  [6]: http://geeksquiz.com/merge-sort/
  [7]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/sorting/
  [8]: http://web.stanford.edu/class/cs97si/suffix-array.pdf
  [9]: http://discuss.codechef.com/questions/21385/a-tutorial-on-suffix-arrays
  [10]: http://apps.topcoder.com/forums/;jsessionid=BC99925E58CB2628CA9AA3AFC13F6593?module=Thread&threadID=627379&start=0
  [11]: http://www.spoj.com/problems/SUBST1/
  [12]: http://www.codechef.com/problems/MOU1H
  [13]: https://www.topcoder.com/community/data-science/data-science-tutorials/introduction-to-string-searching-algorithms/
  [14]: http://www.geeksforgeeks.org/searching-for-patterns-set-2-kmp-algorithm/
  [15]: http://keithschwarz.com/interesting/code/?dir=knuth-morris-pratt
  [16]: http://www.codechef.com/problems/TASHIFT
  [17]: http://www.geeksforgeeks.org/searching-for-patterns-set-3-rabin-karp-algorithm/
  [18]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/introduction-to-string-searching-algorithms/
  [19]: http://www.codechef.com/problems/SSTORY
  [20]: http://codeforces.com/problemset/problem/271/D
  [21]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/using-tries/
  [22]: http://www.geeksforgeeks.org/trie-insert-and-search/
  [23]: http://www.geeksforgeeks.org/trie-delete/
  [24]: http://threads-iiith.quora.com/Tutorial-on-Trie-and-example-problems
  [25]: http://www.spoj.com/problems/SUBXOR/
  [26]: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=345&page=show_problem&problem=2683
  [27]: http://www.codechef.com/problems/EST
  [28]: http://www.geeksforgeeks.org/depth-first-traversal-for-a-graph/
  [29]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/introduction-to-graphs-and-their-data-structures-section-2/
  [30]: http://www.spoj.com/problems/PARADOX/
  [31]: http://www.spoj.com/problems/BUGLIFE/
  [32]: http://www.spoj.com/problems/PT07Z/
  [33]: http://www.geeksforgeeks.org/breadth-first-traversal-for-a-graph/
  [34]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/introduction-to-graphs-and-their-data-structures-section-2/
  [35]: http://www.codechef.com/problems/DIGJUMP
  [36]: http://www.spoj.com/problems/ONEZERO/
  [37]: http://www.spoj.com/problems/NAKANJ/
  [38]: http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=findSolution#floodfill
  [39]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/introduction-to-graphs-and-their-data-structures-section-3/
  [40]: http://www.codechef.com/problems/REN2013G
  [41]: http://e-maxx.ru/algo/dijkstra
  [42]: http://e-maxx.ru/algo/dijkstra_sparse
  [43]: http://zobayer.blogspot.in/2009/12/dijkstras-algorithm-in-c.html
  [44]: http://www.spoj.com/problems/EZDIJKST/
  [45]: http://www.spoj.com/problems/SHPATH/
  [46]: http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=binaryIndexedTrees
  [47]: http://codeforces.com/blog/entry/619
  [48]: http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=AB3AEBC0736E52FA815A3D4C633DE52F?doi=10.1.1.14.8917&rep=rep1&type=pdf
  [49]: http://sanugupta.wordpress.com/2014/08/29/binary-indexed-tree-fenwick-tree/
  [50]: http://cs.stackexchange.com/a/10541
  [51]: http://www.spoj.com/problems/HORRIBLE/
  [52]: http://www.spoj.com/problems/YODANESS/
  [53]: http://www.spoj.com/problems/INVCNT/
  [54]: http://www.spoj.com/problems/NICEDAY/
  [55]: http://www.spoj.com/problems/CTRICK/
  [56]: http://www.spoj.com/problems/DQUERY/
  [57]: http://www.spoj.com/problems/MCHAOS/
  [58]: http://se7so.blogspot.in/2012/12/segment-trees-and-lazy-propagation.html
  [59]: http://discuss.codechef.com/questions/38770/lazy-propagation
  [60]: http://letuskode.blogspot.in/2013/01/segtrees.html
  [61]: http://e-maxx.ru/algo/segment_tree
  [62]: http://blog.anudeep2011.com/persistent-segment-trees-explained-with-spoj-problems/
  [63]: https://discuss.codechef.com/questions/101647/persistence-made-simple-tutorial
  [64]: http://www.spoj.com/problems/HORRIBLE/
  [65]: http://www.codechef.com/problems/IDOLS
  [66]: http://codeforces.com/blog/entry/3107
  [67]: https://www.cs.umd.edu/class/fall2011/cmsc858s/Lec02-zalg.pdf
  [68]: https://ivanyu.me/blog/2013/10/15/z-algorithm/
  [69]: http://www.geeksforgeeks.org/dynamic-programming-set-16-floyd-warshall-algorithm/
  [70]: http://www.spoj.com/problems/AMR11F/
  [71]: http://community.topcoder.com/stat?c=problem_statement&pm=2356
  [72]: https://www.topcoder.com/community/data-science/data-science-tutorials/range-minimum-query-and-lowest-common-ancestor/
  [73]: http://mayanknatani.wordpress.com/2013/07/15/range-minimum-query/
  [74]: https://sites.google.com/site/indy256/algo/sparse_table_rmq
  [75]: http://www.sourcetricks.com/2011/06/c-heaps.html#.U9z8J_mSzfc
  [76]: http://pages.cs.wisc.edu/~vernon/cs367/notes/11.PRIORITY-Q.html
  [77]: http://www.cprogramming.com/tutorial/computersciencetheory/heapcode.html
  [78]: http://www.codechef.com/problems/REVERSE
  [79]: http://comeoncodeon.wordpress.com/2011/10/09/modular-multiplicative-inverse/
  [80]: http://discuss.codechef.com/questions/3869/best-known-algos-for-calculating-ncr-m
  [81]: http://fishi.devtail.io/weblog/2015/06/25/computing-large-binomial-coefficients-modulo-prime-non-prime/
  [82]: https://www.dropbox.com/s/h7665pcqto17pl4/BinCoeff.pdf
  [83]: https://www.codechef.com/problems/SANDWICH
  [84]: http://www.cs.nyu.edu/~mohri/pub/nfac.pdf
  [85]: http://www.geeksforgeeks.org/searching-for-patterns-set-5-finite-automata/
  [86]: http://www.geeksforgeeks.org/pattern-searching-set-5-efficient-constructtion-of-finite-automata/
  [87]: http://www.codechef.com/problems/SUBQUERY
  [88]: http://www.codechef.com/problems/TSUBSTR
  [89]: http://www.codechef.com/problems/SSTORY
  [90]: http://www.codechef.com/problems/MOU1H
  [91]: http://e-maxx.ru/algo/suffix_automata
  [92]: http://www.topcoder.com/tc?d1=tutorials&d2=lowestCommonAncestor&module=Static
  [93]: http://www14.informatik.tu-muenchen.de/konferenzen/Jass08/courses/1/moufatich/El_Moufatich_Paper.pdf
  [94]: http://ab.inf.uni-tuebingen.de/people/fischer/lsa.pdf
  [95]: http://www.codechef.com/LTIME14/problems/TALCA
  [96]: http://www.spoj.com/problems/LCA/
  [97]: http://www.codechef.com/problems/TRIPS
  [98]: http://www.geeksforgeeks.org/counting-inversions/
  [99]: http://www.quora.com/Algorithms/How-to-count-inversions-using-Segment-Tree-of-an-given-array
  [100]: http://pavelsimo.blogspot.in/2012/09/counting-inversions-in-array-using-BIT.html
  [101]: http://www.codechef.com/problems/DYNAINV
  [102]: http://discuss.codechef.com/questions/20842/a-tutorial-on-the-extended-euclids-algorithm
  [103]: http://stackoverflow.com/questions/9452701/ukkonens-suffix-tree-algorithm-in-plain-english
  [104]: http://marknelson.us/1996/08/01/suffix-trees/
  [105]: http://www.geeksforgeeks.org/pattern-searching-set-8-suffix-tree-introduction/
  [106]: http://www.geeksforgeeks.org/ukkonens-suffix-tree-construction-part-1/
  [107]: http://www.geeksforgeeks.org/ukkonens-suffix-tree-construction-part-2/
  [108]: http://marknelson.us/attachments/1996/suffix-trees/stree2006.cpp
  [109]: http://www.sanfoundry.com/cpp-program-implement-suffix-tree/
  [110]: http://www.spoj.com/problems/LCS/
  [111]: http://www.codechef.com/OCT11/problems/REPSTR
  [112]: http://www.spoj.com/problems/BEADS/
  [113]: http://www.codechef.com/problems/TASTR
  [114]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/dynamic-programming-from-novice-to-advanced/
  [115]: http://www.codechef.com/problems/LEPAINT
  [116]: http://www.codechef.com/problems/COINS
  [117]: http://www.codechef.com/problems/MARCHA1
  [118]: http://discuss.codechef.com/questions/47239/frogv-editorial
  [119]: http://www.quora.com/Dynamic-Programming-DP/Are-there-any-good-resources-or-tutorials-for-dynamic-programming-besides-the-TopCoder-tutorial
  [120]: http://www.codechef.com/problems/TSHIRTS
  [121]: http://community.topcoder.com/stat?c=problem_statement&pm=11566
  [122]: http://www.spoj.com/problems/SOCOLA/
  [123]: http://www.geeksforgeeks.org/longest-monotonically-increasing-subsequence-size-n-log-n/
  [124]: http://codeforces.com/blog/entry/337
  [125]: http://www.ugrad.cs.ubc.ca/~cs490/sec202/notes/dp/DP%202.pdf
  [126]: http://codeforces.com/blog/entry/8219
  [127]: http://www.spoj.com/problems/TRSTAGE/
  [128]: http://www.spoj.com/problems/LAZYCOWS/
  [129]: http://www.spoj.com/problems/HIST2/
  [130]: http://www.spoj.com/problems/MKPAIRS/
  [131]: http://www.spoj.com/problems/NKLEAVES/
  [132]: http://www.spoj.com/problems/DRAGON2/
  [133]: http://codeforces.com/contest/461/problem/B
  [134]: http://www.iarcs.org.in/inoi/online-study-material/topics/dp-trees.php
  [135]: http://www.cs.berkeley.edu/~vazirani/s99cs170/notes/dynamic2.pdf
  [136]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/data-structures/
  [137]: https://www.cs.bu.edu/teaching/c/stack/array/
  [138]: http://geeksquiz.com/queue-set-1introduction-and-array-implementation/
  [139]: http://codingfreak.blogspot.com/2009/08/implementation-of-singly-linked-list-in.html
  [140]: http://discuss.codechef.com/questions/20451/a-tutorial-on-fast-modulo-multiplication-exponential-squaring
  [141]: http://discuss.codechef.com/questions/17801/introduction-to-graphs-definitions-traversal-depth-first-search
  [142]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/introduction-to-graphs-and-their-data-structures-section-1/
  [143]: http://www.codechef.com/problems/DRGHTS
  [144]: http://www.codechef.com/problems/DIREL
  [145]: https://www.ics.uci.edu/~eppstein/161/960206.html
  [146]: http://www.geeksforgeeks.org/greedy-algorithms-set-2-kruskals-minimum-spanning-tree-mst/
  [147]: http://www.geeksforgeeks.org/greedy-algorithms-set-5-prims-minimum-spanning-tree-mst-2/
  [148]: http://www.spoj.com/problems/MST/
  [149]: http://www.spoj.com/problems/CSTREET/
  [150]: http://www.spoj.com/problems/BLINNET/
  [151]: http://community.topcoder.com/stat?c=problem_statement&pm=7921&rd=10765
  [152]: http://community.topcoder.com/stat?c=problem_statement&pm=7643&rd=12058
  [153]: http://www.geeksforgeeks.org/print-all-prime-factors-of-a-given-number/
  [154]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/basics-of-combinatorics/
  [155]: http://www.codechef.com/problems/BINTOUR
  [156]: http://apps.topcoder.com/forums/?module=Thread&threadID=334598&start=0&mc=13#335550
  [157]: http://www.cs.cornell.edu/~wdtseng/icpc/notes/graph_part4.pdf
  [158]: http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=disjointDataStructure
  [159]: http://www.codechef.com/problems/DISHOWN
  [160]: http://www.spoj.com/problems/BLINNET/
  [161]: http://www.spoj.com/problems/CHAIN/
  [162]: http://www.geeksforgeeks.org/dynamic-programming-set-10-0-1-knapsack-problem/
  [163]: http://www.cs.sun.ac.za/~lvzijl/courses/rw778/autappl/crous-hw2.pdf
  [164]: https://gist.github.com/andmej/1233426
  [165]: http://www.codechef.com/problems/FAVNUM
  [166]: http://community.topcoder.com/stat?c=problem_statement&pm=11514&rd=14544
  [167]: http://community.topcoder.com/stat?c=problem_statement&pm=6017
  [168]: http://www.spoj.com/problems/WPUZZLES/
  [169]: http://www.geeksforgeeks.org/strongly-connected-components/
  [170]: http://www.cs.berkeley.edu/~vazirani/s99cs170/notes/lec12.pdf
  [171]: http://www.spoj.com/problems/BOTTOM/
  [172]: http://www.spoj.com/problems/BREAK/
  [173]: http://community.topcoder.com/stat?c=problem_statement&pm=8488&rd=11125
  [174]: http://www.geeksforgeeks.org/dynamic-programming-set-23-bellman-ford-algorithm/
  [175]: http://compprog.wordpress.com/2007/11/29/one-source-shortest-path-the-bellman-ford-algorithm/
  [176]: http://community.topcoder.com/stat?c=problem_statement&pm=10580
  [177]: http://codeforces.com/problemset/problem/346/D
  [178]: http://e-maxx.ru/algo/heavy_light
  [179]: http://blog.anudeep2011.com/heavy-light-decomposition/
  [180]: http://wcipeg.com/wiki/Heavy-light_decomposition
  [181]: http://apps.topcoder.com/forums/?module=Thread&threadID=796128&start=0&mc=8
  [182]: http://pastie.org/private/ozpqitws20ylrj8a57tog#
  [183]: http://www.spoj.com/problems/QTREE6/
  [184]: http://www.codechef.com/problems/PUSHFLOW
  [185]: http://www.codechef.com/problems/GERALD2
  [186]: http://www.geeksforgeeks.org/convex-hull-set-1-jarviss-algorithm-or-wrapping/
  [187]: http://www.geeksforgeeks.org/convex-hull-set-2-graham-scan/
  [188]: https://www.topcoder.com/community/data-science/data-science-tutorials/geometry-concepts-line-intersection-and-its-applications/
  [189]: http://stanford.edu/~liszt90/acm/notebook.html#file8
  [190]: https://www.topcoder.com/stat?c=problem_statement&pm=3996&rd=7224
  [191]: http://codeforces.com/problemset/problem/166/B
  [192]: http://community.topcoder.com/stat?c=problem_statement&pm=1960&rd=4670
  [193]: http://acm.timus.ru/problem.aspx?space=1&num=1185
  [194]: http://www.spoj.com/problems/BSHEEP/
  [195]: http://www.geeksforgeeks.org/check-if-two-given-line-segments-intersect/
  [196]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/geometry-concepts-line-intersection-and-its-applications/
  [197]: http://www.geeksforgeeks.org/sieve-of-eratosthenes/
  [198]: http://www.geeksforgeeks.org/interval-tree/
  [199]: http://www.codechef.com/problems/FLIPCOIN/
  [200]: http://www.spoj.com/problems/THRBL/
  [201]: http://www.spoj.com/problems/LITE/
  [202]: http://www.spoj.com/problems/FREQUENT/
  [203]: http://www.spoj.com/problems/GSS1/
  [204]: http://www.spoj.com/problems/GSS3/
  [205]: http://www.dgp.toronto.edu/people/JamesStewart/378notes/22intervals/
  [206]: http://www.geeksforgeeks.org/counting-sort/
  [207]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/understanding-probabilities/
  [208]: http://discuss.codechef.com/questions/2335/building-up-the-recurrence-matrix-to-compute-recurrences-in-ologn-time
  [209]: http://zobayer.blogspot.in/2010/11/matrix-exponentiation.html
  [210]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/maximum-flow-section-1/
  [211]: http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=maxFlow2
  [212]: http://www.geeksforgeeks.org/ford-fulkerson-algorithm-for-maximum-flow-problem/
  [213]: http://www.geeksforgeeks.org/minimum-cut-in-a-directed-graph/
  [214]: http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=minimumCostFlow1
  [215]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/minimum-cost-flow-part-2-algorithms/
  [216]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/minimum-cost-flow-part-3-applications/
  [217]: http://e-maxx.ru/algo/dinic
  [218]: http://e-maxx.ru/algo/edmonds_karp
  [219]: http://www.codechef.com/problems/TWOCOMP
  [220]: http://www.codechef.com/problems/LONGART
  [221]: http://www.codechef.com/problems/ANUBTT
  [222]: http://www.codechef.com/problems/ORDERAAM
  [223]: http://www.codechef.com/problems/PARADE
  [224]: http://
  [225]: http://www.codechef.com/problems/CAKE2AM
  [226]: http://www.spoj.com/problems/EN/
  [227]: http://www.spoj.com/problems/POTHOLE/
  [228]: http://www.spoj.com/problems/SCITIES/
  [229]: http://www.spoj.com/problems/GREED/
  [230]: http://www.spoj.com/problems/TOURS/
  [231]: http://community.topcoder.com/stat?c=problem_statement&pm=1931&rd=4709
  [232]: http://community.topcoder.com/stat?c=problem_statement&pm=2852&rd=5075
  [233]: http://community.topcoder.com/stat?c=problem_statement&pm=3530&rd=6535
  [234]: http://web.stanford.edu/class/cs106l/handouts/assignment-3-kdtree.pdf
  [235]: http://www.autonlab.org/autonweb/14665/version/2/part/5/data/moore-tutorial.pdf?branch=main&language=en
  [236]: http://rosettacode.org/wiki/K-d_tree
  [237]: http://www.spoj.com/problems/GANNHAT/
  [238]: http://www.sourcetricks.com/2011/06/c-deque.html#.U--v__mSzfc
  [239]: http://www.sourcetricks.com/2011/06/binary-search-trees-in-c.html#.U--wAvmSzfc
  [240]: http://geeksquiz.com/binary-search-tree-set-1-search-and-insertion/
  [241]: http://geeksquiz.com/binary-search-tree-set-2-delete/
  [242]: http://www.sourcetricks.com/2011/06/quick-select.html#.U_CQ0_mSzfc
  [243]: http://rosettacode.org/wiki/Quickselect_algorithm#C.2B.2B
  [244]: http://habrahabr.ru/post/101818/
  [245]: http://e-maxx.ru/algo/treap
  [246]: http://codeforces.com/blog/entry/3767
  [247]: http://www.codechef.com/problems/CARDSHUF/
  [248]: http://www.codechef.com/problems/CHEFC
  [249]: http://www.math.ucla.edu/~tom/Game_Theory/comb.pdf
  [250]: http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=algorithmGames
  [251]: http://letuskode.blogspot.ch/2014/08/grundy-numbers.html
  [252]: http://www.thelearningpoint.net/home/mathematics/an-introduction-to-game-theory
  [253]: http://www.thelearningpoint.net/home/mathematics/a-totorial-on-extensive-games-with-problems-and-solutions
  [254]: http://www.thelearningpoint.net/home/mathematics/bayesian-games---games-with-incomplete-information
  [255]: http://www.thelearningpoint.net/home/mathematics/repeated-games---tutorial-and-solved-problems
  [256]: http://www.codechef.com/wiki/tutorial-game-theory
  [257]: http://www.spoj.com/problems/NGM/
  [258]: http://www.spoj.com/problems/MCOINS/
  [259]: http://www.spoj.com/problems/QCJ3/
  [260]: http://www.spoj.com/problems/RESN04/
  [261]: http://www.spoj.com/problems/MMMGAME/
  [262]: http://www.spoj.com/problems/PEBBMOV/
  [263]: http://www.codechef.com/problems/CHEFBRO
  [264]: http://www.spoj.com/problems/HUBULLU/
  [265]: http://www.codechef.com/problems/BIGPIZA
  [266]: http://codeforces.com/contest/87/problem/C
  [267]: http://www.spoj.com/problems/CRSCNTRY/
  [268]: http://codeforces.com/blog/entry/3657
  [269]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/power-up-c-with-the-standard-template-library-part-i/
  [270]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/power-up-c-with-the-standard-template-library-part-ii-advanced-uses/
  [271]: http://community.topcoder.com/tc?module=Static&d1=features&d2=082803
  [272]: http://www.geeksforgeeks.org/maximum-bipartite-matching/
  [273]: http://leetcode.com/2011/11/longest-palindromic-substring-part-ii.html
  [274]: http://tarokuriyama.com/projects/palindrome2.php
  [275]: http://tristan-interview.blogspot.in/2011/11/longest-palindrome-substring-manachers.html
  [276]: http://e-maxx.ru/algo/palindromes_count
  [277]: http://acm.timus.ru/problem.aspx?space=1&num=1937
  [278]: http://www.spoj.com/problems/LPS/
  [279]: http://www.spoj.com/problems/MSUBSTR/
  [280]: http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=primalityTesting
  [281]: http://rosettacode.org/wiki/Miller-Rabin_primality_test#C
  [282]: http://www.geeksforgeeks.org/stable-marriage-problem/
  [283]: http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=hungarianAlgorithm
  [284]: https://math.uc.edu/~halpern/Linear.progr.folder/Handouts.lp.02/Hungarian.algorithm.pdf
  [285]: https://www.topcoder.com/tc?module=Static&d1=tutorials&d2=lineSweep
  [286]: http://www.geeksforgeeks.org/given-a-set-of-line-segments-find-if-any-two-segments-intersect/
  [287]: http://codeforces.com/blog/entry/12796#comment-175287
  [288]: http://e-maxx.ru/algo/suffix_array#7
  [289]: http://compprog.wordpress.com/2007/12/11/gaussian-elimination/
  [290]: http://www.cs.colorado.edu/~srirams/classes/doku.php/pollard_rho_tutorial
  [291]: http://www.spoj.com/problems/FACT1/
  [292]: http://www.geeksforgeeks.org/topological-sorting/
  [293]: http://www.geeksforgeeks.org/detect-cycle-in-a-graph/
  [294]: http://www.geeksforgeeks.org/union-find/
  [295]: http://www.geeksforgeeks.org/detect-cycle-undirected-graph/
  [296]: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/geometry-concepts-basic-concepts/
  [297]: http://web.stanford.edu/class/cs97si/09-computational-geometry.pdf
  [298]: http://www.geeksforgeeks.org/backtracking-set-3-n-queen-problem/
  [299]: http://www.geeksforgeeks.org/tug-of-war/
  [300]: http://www.geeksforgeeks.org/backtracking-set-7-suduku/
  [301]: http://www.cs.sfu.ca/~ggbaker/zju/math/euler-ham.html#ham
  [302]: http://www.csd.uoc.gr/~hy583/papers/ch14.pdf
  [303]: http://www.geeksforgeeks.org/eulerian-path-and-circuit/
  [304]: http://www.geeksforgeeks.org/backtracking-set-7-hamiltonian-cycle/
  [305]: http://algorithm.daqwest.com/search?search=Coloring%20algorithm
  [306]: http://www.infoarena.ro/blog/meet-in-the-middle
  [307]: https://sites.google.com/site/indy256/algo/meet-in-the-middle
  [308]: http://pastebin.com/aQ8NJ197
  [309]: https://github.com/anudeep2011/programming/blob/master/bigint.cpp
  [310]: http://www.geeksforgeeks.org/radix-sort/
  [311]: http://www.geeksforgeeks.org/bucket-sort-2/
  [312]: http://www.geeksforgeeks.org/johnsons-algorithm/
  [313]: http://en.wikipedia.org/wiki/Johnson's_algorithm
  [314]: https://gist.github.com/ashleyholman/6793360
  [315]: http://e-maxx.ru/algo/matching_edmonds
  [316]: http://e-maxx.ru/algo/tutte_matrix
  [317]: http://www.codechef.com/problems/SEAGRP
  [318]: http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=recursionPt1
  [319]: http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=recursionPt2
  [320]: http://geeksquiz.com/c-program-for-tower-of-hanoi/
  [321]: http://en.wikipedia.org/wiki/Tower_of_Hanoi#Recursive_solution
  [322]: http://apps.topcoder.com/forums/?module=Thread&threadID=685138&start=0
  [323]: http://e-maxx.ru/algo/inclusion_exclusion_principle
  [324]: http://www.quora.com/What-is-coordinate-compression
  [325]: http://e-maxx.ru/algo/sqrt_decomposition
  [326]: http://sysmagazine.com/posts/138946/
  [327]: http://www.spoj.com/problems/RACETIME/
  [328]: http://www.codechef.com/problems/GERALD07
  [329]: http://www.cs.cmu.edu/~sleator/papers/dynamic-trees.pdf
  [330]: http://en.wikipedia.org/wiki/Link/cut_tree
  [331]: http://www.cs.cmu.edu/~avrim/451f12/lectures/lect1009-linkcut.txt
  [332]: http://www.codechef.com/problems/QTREE6
  [333]: http://www.spoj.com/problems/DYNACON1/
  [334]: http://www.spoj.com/problems/DYNALCA/
  [335]: http://codeforces.com/contest/117/problem/E
  [336]: http://e-maxx.ru/algo/euler_function
  [337]: http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=primeNumbers
  [338]: http://e-maxx.ru/algo/burnside_polya
  [339]: http://petr-mitrichev.blogspot.in/2008/11/burnsides-lemma.html
  [340]: http://community.topcoder.com/stat?c=problem_statement&pm=9975
  [341]: https://web.stanford.edu/class/cs124/lec/med.pdf
  [342]: http://en.wikipedia.org/wiki/Wagner%E2%80%93Fischer_algorithm
  [343]: http://www.csse.monash.edu.au/~lloyd/tildeAlgDS/Dynamic/Edit/
  [344]: http://www.codechef.com/problems/SEATSR
  [345]:http://www.spoj.com/problems/EDIST/
  [346]: http://www.academic.marist.edu/~jzbv/algorithms/Branch%20and%20Bound.htm
  [347]: http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=math_for_topcoders
  [348]: http://blog.anudeep2011.com/mos-algorithm/
520 Likes

we already have a topic for list of imp algo

9 Likes

A good initiative :slight_smile:

18 Likes

Just a suggestion. Sort this list according to their usage. Like, the algorithms which are most used would be ranked first, then the rarely used problems.

25 Likes

add geeksforgeeks.org for tutorials

3 Likes

I do add the ones that I find are good.

1 Like

I bookmarked this page… relating to the problem is best part… thanku…
want more…:slight_smile:

2 Likes

Nice Initiative I would recommend http://e-maxx.ru/algo/ for the implementation and theory. Make use of google translate. It also have a good set of questions in the end.

For DP I would recommend this the topic is nicely explained by Mimino.(For starters)

6 Likes

Take a look of this website once…Explanation of all the algorithms from different sources can be found at one place!!!
http://algorithm.daqwest.com/

9 Likes

link

The above link has lesser known but useful data structures.

12 Likes

I think stackoverflow can also be of immense help.

Really awesome effort.

5 Likes

For heavy-light decomposition -

 http://wcipeg.com/wiki/Heavy-light_decomposition 
8 Likes

I have found a nice implementation of Dijkstra’s algorithm using c++. Please , have a look at the following link:

http://zobayer.blogspot.in/2009/12/dijkstras-algorithm-in-c.html

2 Likes

Added. Thanks :slight_smile:

Matrix exponentiation : http://zobayer.blogspot.in/2010/11/matrix-exponentiation.html

related problem : http://www.hackerearth.com/problem/algorithm/long-walks-from-office-to-home-sweet-home-1/

8 Likes

One might try http://e-maxx.ru/ :slight_smile: It’s in Russian though, but Google translator might help.

6 Likes

Quick Select

Deque

Binary Search Trees

1 Like

Thanks a lot :slight_smile:

Really good work.

God Bless you and you will win IOI :slight_smile:

25 Likes

GRUNDY NUMBERS-

2 Likes