Add some pithy 'Advice' lines to the big-O summary
Also mentioned "anything else between quadratic n² and exponential b^n", which is where a lot of NP-hard optimizations are ending up right now (e.g. O(n² (log log n)² and friends)
This commit is contained in:
parent
a56a2ddbba
commit
8931b246b4
@ -335,14 +335,22 @@ shave cycles, but this just prevents dumb performance issues that might not
|
|||||||
be noticed until much later.
|
be noticed until much later.
|
||||||
|
|
||||||
The basic classes of complexity are:
|
The basic classes of complexity are:
|
||||||
* O(1): a field access, array or map lookup
|
* O(1): a field access, array or map lookup
|
||||||
* O(log n): binary search
|
Advice: don't worry about it
|
||||||
* O(n): simple loop
|
* O(log n): binary search
|
||||||
* O(n\*m): nested loop
|
Advice: only a problem if it's in a loop
|
||||||
* O(n log n): divide-and-conquer
|
* O(n): simple loop
|
||||||
* combinatoric - look out!!
|
Advice: you're doing this all the time
|
||||||
|
* O(n log n): divide-and-conquer, sorting
|
||||||
|
Advice: still fairly fast
|
||||||
|
* O(n\*m): nested loop / quadratic
|
||||||
|
Advice: be careful and constrain your set sizes
|
||||||
|
* Anything else between quadratic and subexponential
|
||||||
|
Advice: don't run this on a million rows
|
||||||
|
* O(b ^ n), O(n!): exponential and up
|
||||||
|
Advice: good luck if you have more than a dozen or two data points
|
||||||
|
|
||||||
Link: bigocheatsheet.com
|
Link: http://bigocheatsheet.com
|
||||||
|
|
||||||
Let's say you need to search through of an unsorted set of data. "I should
|
Let's say you need to search through of an unsorted set of data. "I should
|
||||||
use a binary search" you think, knowing that a binary search O(log n) which
|
use a binary search" you think, knowing that a binary search O(log n) which
|
||||||
|
Loading…
Reference in New Issue
Block a user