Блог пользователя saanc

Автор saanc, 12 лет назад, По-английски

Do you want to know about Binary Search? Do you want a right place to learn it? Open the link given below and get a right place :) My second blog post: http://sanugupta.wordpress.com/2014/06/05/linear-search-vs-binary-search/

  • Проголосовать: нравится
  • +5
  • Проголосовать: не нравится

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится

I think the common problem of most of binary search tutorials for beginners that I've seen is that they never go any further than searching for a number in the array. Given you understood that you might still encounter problems in understanding how to apply binary search to solve many other problems like this — 378D - Preparing for the Contest — where there is some monotonic function instead of an explicitly built sorted array.

»
12 лет назад, скрыть # |
← Rev. 4  
Проголосовать: нравится 0 Проголосовать: не нравится

One thing which is very important for beginners is the fact that binary search is applicable in many situations where there is mathematical solution. And very often it is much faster to code — instead of solving for mathematical direct equation you just create function which calculates amount needed and do binary search. You would probably not do that in production code, but in competitive programming factor of log(n) added by binary search is often irrelevant, while speed of coding is extremely important.

My own experience: Problem: Bullseye from GCJ.

At that time I had just finished prof Sedgewicks course about Analytical Combinatorics, so I was very proud that after drawing formulas for 15 minutes I came up with closed form solution for the problem. I was not so happy when I discovered that:\

  • closed-form solution suffered from need to take sqrt from very big numbers. I was able to overcome that.

  • solution without any closed form formulas, using simple binary search, can be coded in 3-5 minutes.