binarySearch.js 862 B

12345678910111213141516171819202122232425262728
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.binarySearch = binarySearch;
  4. function binarySearch(values, searchValue) {
  5. let low = 0;
  6. let high = values.length - 1;
  7. let match;
  8. while (low <= high) {
  9. const mid = Math.floor((low + high) / 2);
  10. const midValue = values[mid];
  11. if (midValue < searchValue) {
  12. low = mid + 1;
  13. }
  14. else if (midValue > searchValue) {
  15. high = mid - 1;
  16. }
  17. else {
  18. low = mid;
  19. high = mid;
  20. match = mid;
  21. break;
  22. }
  23. }
  24. const finalLow = Math.max(Math.min(low, high, values.length - 1), 0);
  25. const finalHigh = Math.min(Math.max(low, high, 0), values.length - 1);
  26. return { low: finalLow, high: finalHigh, match };
  27. }
  28. //# sourceMappingURL=binarySearch.js.map