@figliolia/data-structures
Version:
Efficient data structures for every day programming
26 lines (25 loc) • 689 B
TypeScript
/**
* Binary Search
*
* A log(N) search for sorted lists
*
* ```typescript
* import { binarySearch } from "@figliolia/data-structures";
*
* binarySearch([1, 2, 3, 4], 3) // true
* binarySearch([1, 2, 3, 4], 5) // false
*
* binarySearch(
* [ // list
* { id: 1, name: "Jeff" },
* { id: 2, name: "Steve" },
* { id: 3, name: "Dave" },
* { id: 4, name: "Alex" },
* ],
* { id: 3, name: "Dave" }, // target
* item => item.id // extractor
* ) // true
* ```
*/
export declare function binarySearch(list: number[], target: number): boolean;
export declare function binarySearch<T>(list: T[], target: T, extractor?: (currentItem: T) => number): boolean;