2222 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2323*/
2424
25- function compare ( v1 , v2 ) {
25+ export type CompareFunction = ( v1 : number , v2 : number ) => Boolean ;
26+
27+ function compare ( v1 : number , v2 : number ) {
2628 return v1 < v2 ;
2729}
2830
29- function upperBound ( array , value , comp = compare ) {
31+ function upperBound ( array : number [ ] , value : number , comp : CompareFunction = compare ) {
3032 let len = array . length ;
3133 let i = 0 ;
3234
@@ -43,7 +45,7 @@ function upperBound(array, value, comp = compare) {
4345 return i ;
4446}
4547
46- function lowerBound ( array , value , comp = compare ) {
48+ function lowerBound ( array : number [ ] , value : number , comp : CompareFunction = compare ) {
4749 let len = array . length ;
4850 let i = 0 ;
4951
@@ -60,7 +62,7 @@ function lowerBound(array, value, comp = compare) {
6062 return i ;
6163}
6264
63- function binarySearch ( array , value , comp = compare ) {
65+ function binarySearch ( array : number [ ] , value : number , comp : CompareFunction = compare ) {
6466 let cursor = lowerBound ( array , value , comp ) ;
6567 return cursor !== array . length && ! comp ( value , array [ cursor ] ) ;
6668}
0 commit comments