Heroic Boss Guides: TL;DR
Welcome to our TL;DR Cheat Sheet! This is meant to give you basic information on the key aspects of each fight, and is over-simplified. We strongly recommend that after you finish reading this, you visit the page for each boss to get more in-depth information on how the abilities work and a detailed strategy.
Wrathion
Back and forth between P1 and P2 till he dies
Phase 1
- Nobody stand in front of, or behind, the boss (except for active tank)
- Tanks swap at 1-2 stacks
- Red circle under you, get out
- Boss does the giant red swirlie, get 35 yards away
- Immediately after, run to the furthest edge of the room and wait for explosions to end
Phase 2
- 3 people need to soak the red soak circles, run over pillars
- Everyone else finds and kills stealthed mobs
- Kill any pillars your 3 person team couldn’t
- 1/22/14 Big-O Algorithm Complexity Cheat Sheet bigocheatsheet.com 1/17 I receive $12.19 / wk on Gittip. Big-O Cheat Sheet Searching Sorting Data Structures Heaps Graphs Chart Comments Tweet 2,710 1.7k Know Thy Complexities! This webpage covers the space and time Big-O complexities of common algorithms used in Computer Science.
- Big-O Algorithm Complexity Cheat Sheet Created Date: 8/24/2016 10:43:56 AM.
He has also made a cheat sheet useful for talking to colleagues or friends about the technique: Click image for PDF version As this technique is quite popular with software developers there is a lot of software implementations to assist you in using this technique: several iPhone apps and versions of the timer used to measure the 25 minutes.
Maut
Back and forth between P1 and P2 till he dies
Phase 1
- Melee stand to the boss’s side, ranged and heals behind him
- Don’t get hit by Black Wings
- If you get the purple targeting circle, move towards the edge of the room to drop puddle
- Don’t stand in giant purple swirlie. After it explodes, add spawns from the middle
- Tank 1 gets boss, tank 2 gets add 1 when it spawns
- When add 2 spawns, tank 2 taunts boss. Boss will eat add 1 when it gets close
- Repeat this when add 3 spawns
- Stand in the purple puddle during Stygian Annihilation
Phase 2
- Everyone stack in melee
- Tanks run around and soak blue orbs coming from the side
- Drop your debuff on the raid group
- If you get small purple swirlie, move 8 yards out till it goes away
Skitra
Back and forth between normal and intermission phase. Intermission every 20% HP
Normal Phase
- Everyone stacks in melee behind the boss except the tank
- Tanks swap at 7-8 stacks
- If you get Shred Psyche, move 8 yards away until it falls off
- Wait 5s after add spawns, then nuke it
- CC one of the Images to give yourself a safe spot
- Lust on pull
Intermission
- Boss splits raid in half with debuffs
- Each half sees 4 Images of the boss
- Most are fake
- Find real one, kill real one
Xanesh
Soccer boss!
Normal abilities
- Tanks swap at 1-2 stacks
- Move away from red targeting circle if you see one
- Don’t stand in the Obelisks
- Stay out of the goop during Torment
- Raid use movement CD here like Stampeding Roar
Soccer!
- 3 players soak the orange soak circles
- Find the glowing portal, ball spawns here
- “Kick” ball to the other portal on opposite side of the room
- Ball can NOT touch wall, Obelisks, or Azshara
- After scoring goal, you can’t play soccer for 3 mins. New team next time.
Keep doing these till she dies
Hivemind
1 phase fight against 2 bosses. They don’t share health pool. Summon adds all fight
- Tek’ris in control = stack bosses
- Ka’zir in control = spread bosses 20 yards
- No tank swaps
- Don’t stand in Tek’ris’s purple frontal
- Spread out when purple circles go on everyone
- When Tek’ris makes a Ravager add, everyone hard swap
- When Ka’zir makes an add do Volatile Corruption, hard swap
- Dodge bowling ball adds
- Interrupt Ka’zir’s cast
- Keep adds slowed, AoE fest. Kill them as they keep coming
- Lust on pull
Shad’har
3 phase fight against a 2 headed doggo
All Phases
- Boss does a frontal cone breath ability at a random player
- Does damage + a debuff. Debuff changes based on phase
- Can always be dodged
- Does a 1-2 combo on tanks Crush and Dissolve. Always taunt swap as soon as Crush deals damage
- If you get the 4 stack application of Debilitating Spit, use a cooldown
- If you get fixated by a Living Miasma, move away from people
Phase 1 – 100%-66%
- Dodge purple swirlies, they come out more frequently the longer you’re in p1
Phase 2 – 66%-33%
- Soak void orbs when they spawn
Phase 3 – 33%-0%
- Burn phase, lust at 30%
- Green goop puddle starts in the middle of the room, grows over time
- Racing to kill the boss before goop takes over the entire space
- Boss does heavy AoE to the raid the rest of the fight
- Enrages at 30%, increasing damage done 25%
Drest’agath
One phase encounter against a giant tentacle and her smaller tentacle adds
Drest’agath Abilities
- Heals 11 mil every 5s
- Puts big purple circle on the tank. Taunt swap when this happens
- Tank with the circle needs to run to an add and explode on the add
- Move away from boss when she does Entropic Crash
- If you get purple swirlie, move away from people
- Dodge Void Glare lazer beam
- At 100 energy, does a large AoE on the raid
Adds
- 3 types, Tentacles, Eyes, Maws
- Eyes do mind flay, interrupt it. Kill these last.
- Tentacles drop Smoke Bomb. Melee get inside smoke & kill it
- 1-2 healers need to go in smoke to heal
- Maw does a heal absorb to anyone near. Ranged nuke this
- When adds die, they drop purple goop. Run over goop to get Void Infused Ichor
- When you have Ichor, any damage you deal to the boss can NOT be regenerated by her passive healing. Raid should all grab ichor at same time and use CDs
Rotate through killing adds & boss 3-4 times and kill her
Il’gynoth
2 phase encounter. P1 you fight Il’gynoth, P2 you kill organs. Killing 1 organ moves you back to P1. Need to kill all 3 organs to win
Il’gynoth abilities
- Beam nukes the tank. Swap after taking 2 of these
- Also does standard Eye Beam lasers at a few people. Run away from this. Leaves goop on ground, try to keep goop in a small circle
- MC’s random players. Everyone swap and kill MC’d people
- In your 2nd and 3rd P1, you’ll have blood goop adds. Slow & kill them
- Lust during 3rd Phase 1
P2 abilities
- If you get red circle on you, spread out from people
- Pick 1 organ to kill each P2, all DPS focus it
- Interrupt organs when they cast. If you miss, you’ll get a blood goop add
- Blood goop adds need to be slowed and killed
Vexiona
3 phase fight. Alternates between P1 and P2 until boss reaches 40%, then goes into P3.
Phase 1
- Start fight off against boss + one big Ascendant add
- Nuke Ascendant add asap
- Ascendant does a massive lazer beam at it’s tank
- Leaves an orb where it dies, this comes into play later
- If you get the purple circle under you, move to the edges of the room
- Drops a puddle. Try to drop new puddles on or near old ones
- Boss does a frontal breath on the tank, gives tank stacks of a DoT
- After 3rd breath, tank should get the orb the Ascendant dropped. Resets your stacks
- When tank gets Despair, healers need to bomb heal them
- Boss also periodically puts down a gateway and small adds come out. Casters, rogues, weak warriors. Just kill these
Phase 2
- Boss flies into air, summons new adds, make 1 add turn into Ascendant
- Everyone nuke Ascendant ASAP, then Vexiona tank pick up new orb to reset stacks
- Dodge the flyover flame breath from Vexiona
- Handle the purple circles like in P1, drop puddles near edges
- After 3 flyovers, back to P1
Big O Complexity Cheat Sheet
Repeat P1 and P2 until boss hits 40%
Phase 3
- Burn phase. Lust here
- Everyone gets DoT stacks now whenever you take damage
- Healers save raid CDs for late in fight, boss sub 20% hp
- Move away from boss when she does Heart of Darkness, get out of glowing orange circle
- Stand next to a friend all phase
- Have 5+ people stack on tank when Desolation goes out
Ra-den
2 phase fight. P2 starts at 40% hp
Phase 1
- Everyone but tanks should stack in melee range
- Put 2 markers behind the raid, one left one right
- Orbs spawn, one void one lightning. Kill one, let other hit boss
- Alternate which type of orb you kill
- Boss explodes for AoE damage when orb hits him
- An add spawns based on which orb
- Lightning orb makes a lightning add casting Chain Lightning
- Void orb makes Void add casting a big soak circle. Targeted player make sure you’re with the group to split damage with everyone
- Also does an Unstable ability based on which orb hit
- Lightning orb makes a jumping lightning bolt. Affected player runs to one of the markers behind raid. Someone else runs to other marker for bolt to jump to. Keep repeating until bolt stops jumping
- Void orb makes small soak circles. Soak these
- Different people need to soak or be hit by bolt every time
- Tanks swap at 2 stacks of the debuff he does
Phase 2
- Burn phase, lust here
- Heavy AoE to everyone for rest of fight
- Dodge purple swirlies
- If you get Chained, run away from people you’re connected with
- Healers should rotate raid CDs after lust ends
- Keep tanks around half health this phase, so the DoT from Decaying Strike doesn’t wreck them
Carapace
Coming Soon. See full guide for now.
N’zoth
Coming soon. See full guide for now.
We summarize the performance characteristics of classic algorithms anddata structures for sorting, priority queues, symbol tables, and graph processing.
We also summarize some of the mathematics useful in the analysis of algorithms, including commonly encountered functions;useful formulas and appoximations; properties of logarithms;asymptotic notations; and solutions to divide-and-conquer recurrences.
Sorting.
The table below summarizes the number of compares for a variety of sortingalgorithms, as implemented in this textbook.It includes leading constants but ignores lower-order terms.ALGORITHM | CODE | STABLE | BEST | AVERAGE | WORST | REMARKS | |
---|---|---|---|---|---|---|---|
selection sort | Selection.java | ✔ | ½ n 2 | ½ n 2 | ½ n 2 | n exchanges; quadratic in best case | |
insertion sort | Insertion.java | ✔ | ✔ | n | ¼ n 2 | ½ n 2 | use for small or partially-sorted arrays |
bubble sort | Bubble.java | ✔ | ✔ | n | ½ n 2 | ½ n 2 | rarely useful; use insertion sort instead |
shellsort | Shell.java | ✔ | n log3n | unknown | c n 3/2 | tight code; subquadratic | |
mergesort | Merge.java | ✔ | ½ n lg n | n lg n | n lg n | n log n guarantee; stable | |
quicksort | Quick.java | ✔ | n lg n | 2 n ln n | ½ n 2 | n log n probabilistic guarantee; fastest in practice | |
heapsort | Heap.java | ✔ | n† | 2 n lg n | 2 n lg n | n log n guarantee; in place | |
†n lg n if all keys are distinct |
Priority queues.
The table below summarizes the order of growth of the running time ofoperations for a variety of priority queues, as implemented in this textbook.It ignores leading constants and lower-order terms.Except as noted, all running times are worst-case running times.DATA STRUCTURE | CODE | INSERT | MIN | DELETE | MERGE | ||
---|---|---|---|---|---|---|---|
array | BruteIndexMinPQ.java | 1 | n | n | 1 | 1 | n |
binary heap | IndexMinPQ.java | log n | log n | 1 | log n | log n | n |
d-way heap | IndexMultiwayMinPQ.java | logdn | d logdn | 1 | logdn | d logdn | n |
binomial heap | IndexBinomialMinPQ.java | 1 | log n | 1 | log n | log n | log n |
Fibonacci heap | IndexFibonacciMinPQ.java | 1 | log n† | 1 | 1 † | log n† | 1 |
† amortized guarantee |
Symbol tables.
The table below summarizes the order of growth of the running time ofoperations for a variety of symbol tables, as implemented in this textbook.It ignores leading constants and lower-order terms.
worst case | average case | ||||||
---|---|---|---|---|---|---|---|
DATA STRUCTURE | CODE | SEARCH | INSERT | DELETE | SEARCH | INSERT | DELETE |
sequential search (in an unordered list) | SequentialSearchST.java | n | n | n | n | n | n |
binary search (in a sorted array) | BinarySearchST.java | log n | n | n | log n | n | n |
binary search tree (unbalanced) | BST.java | n | n | n | log n | log n | sqrt(n) |
red-black BST (left-leaning) | RedBlackBST.java | log n | log n | log n | log n | log n | log n |
AVL | AVLTreeST.java | log n | log n | log n | log n | log n | log n |
hash table (separate-chaining) | SeparateChainingHashST.java | n | n | n | 1 † | 1 † | 1 † |
hash table (linear-probing) | LinearProbingHashST.java | n | n | n | 1 † | 1 † | 1 † |
† uniform hashing assumption |
Graph processing.
The table below summarizes the order of growth of the worst-case running time and memory usage (beyond the memory for the graph itself)for a variety of graph-processing problems, as implemented in this textbook.It ignores leading constants and lower-order terms.All running times are worst-case running times.PROBLEM | ALGORITHM | CODE | TIME | SPACE |
---|---|---|---|---|
path | DFS | DepthFirstPaths.java | E + V | V |
shortest path (fewest edges) | BFS | BreadthFirstPaths.java | E + V | V |
cycle | DFS | Cycle.java | E + V | V |
directed path | DFS | DepthFirstDirectedPaths.java | E + V | V |
shortest directed path (fewest edges) | BFS | BreadthFirstDirectedPaths.java | E + V | V |
directed cycle | DFS | DirectedCycle.java | E + V | V |
topological sort | DFS | Topological.java | E + V | V |
bipartiteness / odd cycle | DFS | Bipartite.java | E + V | V |
connected components | DFS | CC.java | E + V | V |
strong components | Kosaraju–Sharir | KosarajuSharirSCC.java | E + V | V |
strong components | Tarjan | TarjanSCC.java | E + V | V |
strong components | Gabow | GabowSCC.java | E + V | V |
Eulerian cycle | DFS | EulerianCycle.java | E + V | E + V |
directed Eulerian cycle | DFS | DirectedEulerianCycle.java | E + V | V |
transitive closure | DFS | TransitiveClosure.java | V (E + V) | V 2 |
minimum spanning tree | Kruskal | KruskalMST.java | E log E | E + V |
minimum spanning tree | Prim | PrimMST.java | E log V | V |
minimum spanning tree | Boruvka | BoruvkaMST.java | E log V | V |
shortest paths (nonnegative weights) | Dijkstra | DijkstraSP.java | E log V | V |
shortest paths (no negative cycles) | Bellman–Ford | BellmanFordSP.java | V (V + E) | V |
shortest paths (no cycles) | topological sort | AcyclicSP.java | V + E | V |
all-pairs shortest paths | Floyd–Warshall | FloydWarshall.java | V 3 | V 2 |
maxflow–mincut | Ford–Fulkerson | FordFulkerson.java | EV (E + V) | V |
bipartite matching | Hopcroft–Karp | HopcroftKarp.java | V ½ (E + V) | V |
assignment problem | successive shortest paths | AssignmentProblem.java | n 3 log n | n 2 |
Commonly encountered functions.
FUNCTION | NOTATION | DEFINITION |
---|---|---|
floor | ( lfloor x rfloor ) | greatest integer (; le ; x) |
ceiling | ( lceil x rceil ) | smallest integer (; ge ; x) |
binary logarithm | ( lg x) or (log_2 x) | (y) such that (2^{,y} = x) |
natural logarithm | ( ln x) or (log_e x ) | (y) such that (e^{,y} = x) |
common logarithm | ( log_{10} x ) | (y) such that (10^{,y} = x) |
iterated binary logarithm | ( lg^* x ) | (0) if (x le 1;; 1 + lg^*(lg x)) otherwise |
harmonic number | ( H_n ) | (1 + 1/2 + 1/3 + ldots + 1/n) |
factorial | ( n! ) | (1 times 2 times 3 times ldots times n) |
binomial coefficient | ( n choose k ) | ( frac{n!}{k! ; (n-k)!}) |
Useful formulas and approximations.
Here are some useful formulas for approximations that are widely used in the analysis of algorithms.- Harmonic sum: (1 + 1/2 + 1/3 + ldots + 1/n sim ln n)
- Triangular sum: (1 + 2 + 3 + ldots + n = n , (n+1) , / , 2 sim n^2 ,/, 2)
- Sum of squares: (1^2 + 2^2 + 3^2 + ldots + n^2 sim n^3 , / , 3)
- Geometric sum: If (r neq 1), then(1 + r + r^2 + r^3 + ldots + r^n = (r^{n+1} - 1) ; /; (r - 1))
- (r = 1/2): (1 + 1/2 + 1/4 + 1/8 + ldots + 1/2^n sim 2)
- (r = 2): (1 + 2 + 4 + 8 + ldots + n/2 + n = 2n - 1 sim 2n), when (n) is a power of 2
- Stirling's approximation: (lg (n!) = lg 1 + lg 2 + lg 3 + ldots + lg n sim n lg n)
- Exponential: ((1 + 1/n)^n sim e; ;;(1 - 1/n)^n sim 1 / e)
- Binomial coefficients: ({n choose k} sim n^k , / , k!) when (k) is a small constant
- Approximate sum by integral: If (f(x)) is a monotonically increasing function, then( displaystyle int_0^n f(x) ; dx ; le ; sum_{i=1}^n ; f(i) ; le ; int_1^{n+1} f(x) ; dx)
Properties of logarithms.
- Definition: (log_b a = c) means (b^c = a).We refer to (b) as the base of the logarithm.
- Special cases: (log_b b = 1,; log_b 1 = 0 )
- Inverse of exponential: (b^{log_b x} = x)
- Product: (log_b (x times y) = log_b x + log_b y )
- Division: (log_b (x div y) = log_b x - log_b y )
- Finite product: (log_b ( x_1 times x_2 times ldots times x_n) ; = ; log_b x_1 + log_b x_2 + ldots + log_b x_n)
- Changing bases: (log_b x = log_c x ; / ; log_c b )
- Rearranging exponents: (x^{log_b y} = y^{log_b x})
- Exponentiation: (log_b (x^y) = y log_b x )

Aymptotic notations: definitions.
NAME | NOTATION | DESCRIPTION | DEFINITION |
---|---|---|---|
Tilde | (f(n) sim g(n); ) | (f(n)) is equal to (g(n)) asymptotically (including constant factors) | ( ; displaystyle lim_{n to infty} frac{f(n)}{g(n)} = 1) |
Big Oh | (f(n)) is (O(g(n))) | (f(n)) is bounded above by (g(n)) asymptotically (ignoring constant factors) | there exist constants (c > 0) and (n_0 ge 0) such that (0 le f(n) le c cdot g(n)) forall (n ge n_0) |
Big Omega | (f(n)) is (Omega(g(n))) | (f(n)) is bounded below by (g(n)) asymptotically (ignoring constant factors) | ( g(n) ) is (O(f(n))) |
Big Theta | (f(n)) is (Theta(g(n))) | (f(n)) is bounded above and below by (g(n)) asymptotically (ignoring constant factors) | ( f(n) ) is both (O(g(n))) and (Omega(g(n))) |
Little oh | (f(n)) is (o(g(n))) | (f(n)) is dominated by (g(n)) asymptotically (ignoring constant factors) | ( ; displaystyle lim_{n to infty} frac{f(n)}{g(n)} = 0) |
Little omega | (f(n)) is (omega(g(n))) | (f(n)) dominates (g(n)) asymptotically (ignoring constant factors) | ( g(n) ) is (o(f(n))) |
Common orders of growth.
NAME | NOTATION | EXAMPLE | CODE FRAGMENT |
---|---|---|---|
Constant | (O(1)) | array access arithmetic operation function call | |
Logarithmic | (O(log n)) | binary search in a sorted array insert in a binary heap search in a red–black tree | |
Linear | (O(n)) | sequential search grade-school addition BFPRT median finding | |
Linearithmic | (O(n log n)) | mergesort heapsort fast Fourier transform | |
Quadratic | (O(n^2)) | enumerate all pairs insertion sort grade-school multiplication | |
Cubic | (O(n^3)) | enumerate all triples Floyd–Warshall grade-school matrix multiplication | |
Polynomial | (O(n^c)) | ellipsoid algorithm for LP AKS primality algorithm Edmond's matching algorithm | |
Exponential | (2^{O(n^c)}) | enumerating all subsets enumerating all permutations backtracing search |
Asymptotic notations: properties.
- Reflexivity: (f(n)) is (O(f(n))).
- Constants: If (f(n)) is (O(g(n))) and ( c > 0 ),then (c cdot f(n)) is (O(g(n)))).
- Products: If (f_1(n)) is (O(g_1(n))) and ( f_2(n) ) is (O(g_2(n)))),then (f_1(n) cdot f_2(n)) is (O(g_1(n) cdot g_2(n)))).
- Sums: If (f_1(n)) is (O(g_1(n))) and ( f_2(n) ) is (O(g_2(n)))),then (f_1(n) + f_2(n)) is (O(max { g_1(n) , g_2(n) })).
- Transitivity: If (f(n)) is (O(g(n))) and ( g(n) ) is (O(h(n))),then ( f(n) ) is (O(h(n))).
- Polynomials: Let (f(n) = a_0 + a_1 n + ldots + a_d n^d) with(a_d > 0). Then, ( f(n) ) is (Theta(n^d)).
- Logarithms and polynomials: ( log_b n ) is (O(n^d)) for every ( b > 0) and every ( d > 0 ).
- Exponentials and polynomials: ( n^d ) is (O(r^n)) for every ( r > 0) and every ( d > 0 ).
- Factorials: ( n! ) is ( 2^{Theta(n log n)} ).
- Limits: If ( ; displaystyle lim_{n to infty} frac{f(n)}{g(n)} = c)for some constant ( 0 < c < infty), then(f(n)) is (Theta(g(n))).
- Limits: If ( ; displaystyle lim_{n to infty} frac{f(n)}{g(n)} = 0),then (f(n)) is (O(g(n))) but not (Theta(g(n))).
- Limits: If ( ; displaystyle lim_{n to infty} frac{f(n)}{g(n)} = infty),then (f(n)) is (Omega(g(n))) but not (O(g(n))).
Here are some examples.
FUNCTION | (o(n^2)) | (O(n^2)) | (Theta(n^2)) | (Omega(n^2)) | (omega(n^2)) | (sim 2 n^2) | (sim 4 n^2) |
---|---|---|---|---|---|---|---|
(log_2 n) | ✔ | ✔ | |||||
(10n + 45) | ✔ | ✔ | |||||
(2n^2 + 45n + 12) | ✔ | ✔ | ✔ | ✔ | |||
(4n^2 - 2 sqrt{n}) | ✔ | ✔ | ✔ | ✔ | |||
(3n^3) | ✔ | ✔ | |||||
(2^n) | ✔ | ✔ |
Divide-and-conquer recurrences.
For each of the following recurrences we assume (T(1) = 0)and that (n,/,2) means either (lfloor n,/,2 rfloor) or(lceil n,/,2 rceil).RECURRENCE | (T(n)) | EXAMPLE |
---|---|---|
(T(n) = T(n,/,2) + 1) | (sim lg n) | binary search |
(T(n) = 2 T(n,/,2) + n) | (sim n lg n) | mergesort |
(T(n) = T(n-1) + n) | (sim frac{1}{2} n^2) | insertion sort |
(T(n) = 2 T(n,/,2) + 1) | (sim n) | tree traversal |
(T(n) = 2 T(n-1) + 1) | (sim 2^n) | towers of Hanoi |
(T(n) = 3 T(n,/,2) + Theta(n)) | (Theta(n^{log_2 3}) = Theta(n^{1.58...})) | Karatsuba multiplication |
(T(n) = 7 T(n,/,2) + Theta(n^2)) | (Theta(n^{log_2 7}) = Theta(n^{2.81...})) | Strassen multiplication |
(T(n) = 2 T(n,/,2) + Theta(n log n)) | (Theta(n log^2 n)) | closest pair |
Master theorem.
Let (a ge 1), (b ge 2), and (c > 0) and suppose that(T(n)) is a function on the non-negative integers that satisfiesthe divide-and-conquer recurrence$$T(n) = a ; T(n,/,b) + Theta(n^c)$$with (T(0) = 0) and (T(1) = Theta(1)), where (n,/,b) meanseither (lfloor n,/,b rfloor) or either (lceil n,/,b rceil).Complexity Cheat Sheet
- If (c < log_b a), then (T(n) = Theta(n^{log_{,b} a}))
- If (c = log_b a), then (T(n) = Theta(n^c log n))
- If (c > log_b a), then (T(n) = Theta(n^c))
Last modified on September 12, 2020.
Copyright © 2000–2019Robert SedgewickandKevin Wayne.All rights reserved.
