# 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/``````
679 Likes

we already have a topic for list of imp algo

12 Likes

A good initiative

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

30 Likes

add geeksforgeeks.org for tutorials

4 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…

3 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)

8 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/

12 Likes

link

The above link has lesser known but useful data structures.

31 Likes

I think stackoverflow can also be of immense help.

Really awesome effort.

7 Likes

For heavy-light decomposition -

`````` http://wcipeg.com/wiki/Heavy-light_decomposition
``````
17 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

3 Likes

Added. Thanks

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

17 Likes

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

8 Likes
2 Likes

Thanks a lot

Really good work.

God Bless you and you will win IOI

27 Likes

GRUNDY NUMBERS-

3 Likes
//