Algorithm Topics We Cover
- Sorting and searching: merge sort, quicksort, heap sort, counting sort, binary search and their trade-offs.
- Recursion and divide and conquer: recurrence relations and the master theorem.
- Dynamic programming: knapsack, longest common subsequence, edit distance and coin change, with memoisation and tabulation.
- Greedy algorithms: activity selection, Huffman coding and proofs of the greedy choice property.
- Graph algorithms: BFS, DFS, topological sort, Dijkstra, Bellman-Ford, Prim, Kruskal and maximum flow.
- Complexity theory: P, NP, NP-completeness and reductions at an introductory level.
- String algorithms: pattern matching with KMP and Rabin-Karp.
Implementation and Theory Together
For implementation tasks, your specialist writes the algorithm in your unit's language, tests it on small hand-checked examples and on large random inputs, and reports running times. For theory tasks, they write precise pseudocode, explain why the algorithm is correct and derive its running time.
Many assignments mix both. You might implement two shortest-path algorithms, compare their performance on different graphs and explain the results using their theoretical complexity. We present this as a short, well-organised report with charts.
Explaining Dynamic Programming
Dynamic programming is the topic students ask about most. The trick is defining the subproblem well. Our walkthroughs state the subproblem in words, give the recurrence, show the table filling in for a small example and then explain how to recover the actual solution, not just its value.
Proofs and Written Answers
Correctness proofs, loop invariants and lower-bound arguments are written in clear, numbered steps. Where your unit uses a particular textbook, such as Introduction to Algorithms by Cormen and others, we follow its notation so the answer matches what your marker expects. MIT's open Introduction to Algorithms course is a helpful free companion for revision.
Typical Algorithms Assignments
Route planning
Model a city or transport network as a weighted graph and find shortest routes. We explain why Dijkstra works here and when Bellman-Ford is needed instead.
Scheduling and optimisation
Allocate tasks, rooms or resources under constraints. We compare a greedy approach with dynamic programming and show where greedy fails.
Empirical analysis
Measure how sorting algorithms perform on sorted, reversed and random data. We design a fair experiment, chart the results and connect them to theory.
How Algorithm Answers Are Marked
Algorithm assignments are usually marked on four things: correctness, efficiency, clarity and justification. Correct output alone rarely earns full marks. Markers want to see that you chose a suitable approach, that your pseudocode is precise enough to implement, and that your complexity claims are backed by reasoning rather than stated as facts.
Common ways to lose marks include giving the best-case running time when the question asks for the worst case, ignoring the cost of building a data structure before using it, and writing a recurrence without solving it. In proofs, students often assume the thing they are trying to prove, or show that an algorithm works on one example rather than in general.
Our specialists write answers that address each of these criteria directly. Pseudocode uses consistent notation, every complexity claim is explained step by step, and proofs state their invariant or induction hypothesis clearly. When an experiment is included, the method is described so another person could repeat it and get the same results.
If your unit publishes a marking guide, send it with your brief. Matching the structure of the answer to the guide makes it much easier for your marker to award every mark you have earned.
Learning From the Solution
Work through the small examples by hand first, then compare with the code. For proofs, try covering the next step and predicting it. Our work is meant to help you understand the material, in line with your university's rules and our fair use policy.
Price and Turnaround
Single-algorithm tasks are often ready within a day or two, and combined implementation and report tasks usually take three to five days. You get a fixed price within 30 minutes of sending the brief and 15 days of free changes. Send your task to get started.