Advertisement
Guest User

Untitled

a guest
Aug 28th, 2015
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.63 KB | None | 0 0
  1. // first = true - find first occurance
  2. // first = false - find last occurance
  3. // first = undefined - first found
  4.  
  5. function binarySearch(array, x, first) {
  6. var start = 0, end = array.length - 1, mid = 0, result = -1;
  7. while (start <= end) {
  8. mid = Math.floor((start + end) / 2);
  9. if (array[mid] == x) {
  10. result = mid;
  11. if (typeof first === 'undefined') {
  12. return result;
  13. } else if (first === true) {
  14. end = mid - 1;
  15. } else if (first === false) {
  16. start = mid + 1;
  17. }
  18. } else if (x < array[mid]) {
  19. end = mid - 1;
  20. } else {
  21. start = mid + 1;
  22. }
  23. }
  24. return result;
  25. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement