UNPKG

@ryanuo/utils

Version:

提供多种实用工具函数,涵盖算法、浏览器操作、网络请求等多个领域

54 lines (53 loc) 1.27 kB
export function bubbleSort(arr) { const n = arr.length; for (let i = 0; i < n - 1; i++) { for (let j = 0; j < n - 1 - i; j++) { if (arr[j] > arr[j + 1]) [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]]; } } return arr; } export function quickSort(arr) { if (arr.length <= 1) return arr; const pivot = arr[0]; const left = arr.filter((x) => x < pivot); const right = arr.filter((x) => x > pivot); return [...quickSort(left), pivot, ...quickSort(right)]; } export function binarySearch(arr, target) { let left = 0; let right = arr.length - 1; while (left <= right) { const mid = Math.floor((left + right) / 2); if (arr[mid] === target) return mid; if (arr[mid] < target) left = mid + 1; else right = mid - 1; } return -1; } export function isPrime(num) { if (num <= 1) return false; for (let i = 2; i <= Math.sqrt(num); i++) { if (num % i === 0) return false; } return true; } export function fibonacciDP(n) { const dp = [0, 1]; for (let i = 2; i <= n; i++) dp[i] = dp[i - 1] + dp[i - 2]; return dp[n]; } export function fibonacciRecursive(n) { if (n < 0) return 0; if (n <= 1) return n; return fibonacciRecursive(n - 1) + fibonacciRecursive(n - 2); }