UNPKG

bitmark-grammar

Version:
70 lines (69 loc) 2.6 kB
"use strict"; /*! * Copyright 2016 The ANTLR Project. All rights reserved. * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information. */ exports.__esModule = true; exports.Arrays = void 0; var Arrays; (function (Arrays) { /** * Searches the specified array of numbers for the specified value using the binary search algorithm. The array must * be sorted prior to making this call. If it is not sorted, the results are unspecified. If the array contains * multiple elements with the specified value, there is no guarantee which one will be found. * * @returns index of the search key, if it is contained in the array; otherwise, (-(insertion point) - 1). The * insertion point is defined as the point at which the key would be inserted into the array: the index of the first * element greater than the key, or array.length if all elements in the array are less than the specified key. Note * that this guarantees that the return value will be >= 0 if and only if the key is found. */ function binarySearch(array, key, fromIndex, toIndex) { return binarySearch0(array, fromIndex !== undefined ? fromIndex : 0, toIndex !== undefined ? toIndex : array.length, key); } Arrays.binarySearch = binarySearch; function binarySearch0(array, fromIndex, toIndex, key) { var low = fromIndex; var high = toIndex - 1; while (low <= high) { var mid = (low + high) >>> 1; var midVal = array[mid]; if (midVal < key) { low = mid + 1; } else if (midVal > key) { high = mid - 1; } else { // key found return mid; } } // key not found. return -(low + 1); } function toString(array) { var result = "["; var first = true; for (var _i = 0, array_1 = array; _i < array_1.length; _i++) { var element = array_1[_i]; if (first) { first = false; } else { result += ", "; } if (element === null) { result += "null"; } else if (element === undefined) { result += "undefined"; } else { result += element; } } result += "]"; return result; } Arrays.toString = toString; })(Arrays = exports.Arrays || (exports.Arrays = {}));