title: To what extent shall we optimize time complexity?
body: <p>Theory vs practice here. 
  Regarding time complexity, and I have a conceptual question that we didn't get to go deeper into in class.</p>
  
  <p>Here it is:</p>
  
  <p>There's a barbaric BROOT force algorithm, O(n^3)... and we got it down o O(n) and it was considered good enough. If we dive in deeper, it is actually O(n)+O(n), two separate iterations of the input. I came up with another way which was actually O(n/2). But those two algorithms are considered to be the same since both are O(n) and as n reaches infinity, it makes no difference, so not necessary at all once we reach O(n).</p>
  
  <p>My question is:</p>
  
  <p>In reality, in practice, we always have a finite number of inputs (admittedly occasionally in the trillions). So following the time complexity logic, O(n/2) is four times as fast as O(2n). So if we can make it faster, why not?</p>