Задача: Бинарный поиск в массиве и его разновидности
Псевдокод: Листинг 4.6. Двочный поиск при n = 1000, упрощение предыдущей версии
  1. i = 512
  2. l = -1
  3. if x[511] < t
  4. l = 1000 - 512
  5.  
  6. while i != 1
  7. /* инвариант: x[l] < t && x[l+i] >=t && i = 2^j */
  8. i = i / 2
  9. if x[l + i] < t
  10. l = l + i
  11.  
  12. /* утверждение: i == 1 && x[l] < t && x[l+i] >= t */
  13. p = l + 1
  14. if p > 1000 || x[p] != t
  15. p = -1
  16.