UNPKG

@tzm96dev/algo-toolkit

Version:

Algorithms Kit: A TypeScript-first library of classic and modern algorithms. Includes sorting, searching, and string-matching utilities for arrays, numbers, and objects. Lightweight, fast, and production-ready.

57 lines (36 loc) 2.38 kB
type KeySelector<T> = keyof T | ((item: T) => unknown); type Order = "asc" | "desc"; interface CommonOptions<T> { key?: KeySelector<T>; order?: Order; } declare function getValue<T>(item: T, key?: KeySelector<T>): unknown; declare function defaultPrimitiveComparator(a: unknown, b: unknown): number; declare function buildComparator<T>(opts?: CommonOptions<T>): (a: T, b: T) => number; declare function bubbleSort<T>(arr: T[], opts?: CommonOptions<T>): T[]; declare function insertionSort<T>(arr: T[], opts?: CommonOptions<T>): T[]; declare function selectionSort<T>(arr: T[], opts?: CommonOptions<T>): T[]; declare function mergeSort<T>(arr: T[], opts?: CommonOptions<T>): T[]; declare function quickSort<T>(arr: T[], opts?: CommonOptions<T>): T[]; declare function heapSort<T>(arr: T[], opts?: CommonOptions<T>): T[]; declare function countingSort(arr: number[], opts?: { min?: number; max?: number; }): number[]; declare function radixSort(arr: number[]): number[]; declare function bucketSort(arr: number[], opts?: { bucketCount?: number; min?: number; max?: number; }): number[]; declare function linearSearch<T>(arr: T[], target: unknown, opts?: CommonOptions<T>): number; declare function binarySearch<T>(arr: T[], target: unknown, opts?: CommonOptions<T>): number; declare function jumpSearch<T>(arr: T[], target: unknown, opts?: CommonOptions<T>): number; declare function interpolationSearch(arr: number[], target: number): number; declare function exponentialSearch<T>(arr: T[], target: unknown, opts?: CommonOptions<T>): number; declare function ternarySearch<T>(arr: T[], target: unknown, opts?: CommonOptions<T>): number; declare function fibonacciSearch(arr: number[], target: number): number; declare function hashSearch<T>(arr: T[], target: unknown, opts?: CommonOptions<T>): number; declare function kmpSearch(text: string, pattern: string): number; declare function rabinKarpSearch(text: string, pattern: string, prime?: number): number; export { type CommonOptions, type KeySelector, type Order, binarySearch, bubbleSort, bucketSort, buildComparator, countingSort, defaultPrimitiveComparator, exponentialSearch, fibonacciSearch, getValue, hashSearch, heapSort, insertionSort, interpolationSearch, jumpSearch, kmpSearch, linearSearch, mergeSort, quickSort, rabinKarpSearch, radixSort, selectionSort, ternarySearch };