When to Apply and When Not to Apply Big-O
When We Do Care About Efficiency (and Big-O)
When designing software that will be used repeatedly on a large number of data entries, we say that our program is scalable (pronounced SCALE-ABLE), if its efficiency is good (proper consideration has been taken to optimizing the Big O (as well as other factors).
When We Do Not Care About Efficiency (or Big-O Analysis)
There are some scenarios for which we would not bother with Big O analysis when designing software. Here are some examples:
- When the number of entries (n) is guaranteed always to be small.
- When we are only going to run the program once (or a few times) and the difference in processing times is not relevant or important.
- When improving the efficiency of the program makes the software vastly more complicated. The benefit of the added efficiency may be outweighed by the increase in the number of bugs and the additional maintenance headaches that go along with them.
The above is an incomplete list.