Design & Analysis of Algorithm



This ultimate unique application is for all students of Design & Analysis of Algorithms across the world. It covers 144 topics of Design & Analysis of Algorithms in detail. These 144 topics are divided in 5 units.

Each topic is around 600 words and is complete with diagrams, equations and other forms of graphical representations along with simple text explaining the concept in detail.

The USP of this application is "ultra-portability". Students can access the content on-the-go from any where they like.

Basically, each topic is like a detailed flash card and will make the lives of students simpler and easier.

Some of topics Covered in this application are:

1. Introduction to Algorithms
2. Efficiency of algorithm
3. Analysis of insertion sort
4. Insertion sort
5. The divide-and-conquer approach
6. Analyzing divide-and-conquer algorithms
7. Asymptotic notation
8. Asymptotic notation in equations and inequalities
9. Standard notations and common functions
10. The hiring problem
11. Indicator random variables
12. Balls and bins
13. Probabilistic analysis and further uses of indicator random variables
14. Streaks
15. The on-line hiring problem
16. Overview of Recurrences
17. The substitution method for recurrences
18. The recursion-tree method
19. The master method
20. Proof of the master theorem
21. The proof for exact powers
22. Floors and ceilings
23. Randomized algorithms
24. Heaps
25. Maintaining the heap property
26. Building a heap
27. The heapsort algorithm
28. Priority queues
29. Description of quicksort
30. Performance of quicksort
31. A randomized version of quicksort
32. Analysis of quicksort
33. Lower bounds for sorting
34. Counting sort
35. Radix sort
36. Minimum and maximum
37. Selection in expected linear time
38. Bucket sort
39. Selection in worst-case linear time
40. Stacks and queues
41. Linked lists
42. Implementing pointers and objects
43. Representing rooted trees
44. Direct-address tables
45. Hash tables
46. Hash functions
47. Open addressing
48. Perfect hashing
49. introduction to binary search tree
50. Querying a binary search tree
51. Insertion and deletion
52. Randomly built binary search trees
53. Red-Black Trees
54. Rotations of red black tree
55. Insertion in red black tree
56. Deletion in red black tree
57. Dynamic order statistics
58. Augmenting a Data Structure
59. Interval Trees
60. Overview of Dynamic Programming
61. Assembly-line scheduling
62. Matrix-chain multiplication
63. Elements of dynamic programming
64. Longest common subsequence
65. Optimal binary search trees
66. Greedy Algorithms
67. Elements of the greedy strategy
68. Huffman codes
69. Theoretical foundations for greedy methods
70. A task-scheduling problem
71. Aggregate analysis
72. The accounting method
73. The potential method
74. Dynamic tables
75. B-Trees
76. Definition of B-trees
77. Basic operations on B-trees
78. Deleting a key from a B-tree
79. Binomial Heaps
80. Operations on binomial heaps
81. Fibonacci Heaps
82. Mergeable-heap operations
83. Decreasing a key and deleting a node
84. Bounding the maximum degree
85. Data Structures for Disjoint Sets
86. Linked-list representation of disjoint sets
87. Disjoint-set forests
88. Analysis of union by rank with path compression
89. Representations of graphs
90. Breadth-first search
91. Depth-first search
92. Topological sort
93. Strongly connected components
94. Minimum Spanning Trees
95. Growing a minimum spanning tree
96. The algorithms of Kruskal and Prim
97. Single-Source Shortest Paths
98. The Bellman-Ford algorithm
99. Single-source shortest paths in directed acyclic graphs
100. Dijkstra's algorithm
101. Difference constraints and shortest paths
102. Shortest paths and matrix multiplication
103. The Floyd-Warshall algorithm
104. Johnson's algorithm for sparse graphs
105. Flow networks
106. The Ford-Fulkerson method
107. Maximum bipartite matching
108. Push-relabel algorithms
109. The relabel-to-front algorithm
110. Comparison networks