@aegenet/belt-binary-search
Version:
Binary search
67 lines (53 loc) • 1.08 kB
Markdown
[](https://www.npmjs.com/package/@aegenet/belt-binary-search)
<br>
# @aegenet/belt-binary-search
> Binary search
## 💾 Installation
```shell
yarn add @aegenet/belt-binary-search@^2.0.0
# or
npm i @aegenet/belt-binary-search@^2.0.0
```
## 📝 Usage
```typescript
import { binarySearch } from '@aegenet/belt-binary-search';
binarySearch(
[1, 2, 3],
2,
(a, b) => a - b)
)
```
```javascript
// Result
{ index: 1, value: 2 }
```
```typescript
const sample = ['Arti', 'Morti', 'Lorti', 'Yolo', 'Yalo', 'Yago', 'Iago', 'Zorro', 'Nor', 'Aru', 'Guru'].sort();
binarySearch<string>(sample, 'Arti', (a, b) => a.localeCompare(b));
```
```javascript
// Result
{ index: 0, value: 'Arti' }
```
```typescript
const sample = [
{
id: 1,
code: 'Arti',
},
/** ... */
{
id: 11,
code: 'Guru',
},
].sort();
binarySearch<{ id: number; code?: string }>(
sample,
{ id: 1 },
(a, b) => a.id - b.id
);
```
```javascript
// Result
{ index: 0, value: { id: 1, code: 'Arti' } }
```