算法js实现
JavaScript 算法实现方法
数组排序算法 快速排序的实现示例:
function quickSort(arr) {
if (arr.length <= 1) return arr;
const pivot = arr[0];
const left = [];
const right = [];
for (let i = 1; i < arr.length; i++) {
if (arr[i] < pivot) left.push(arr[i]);
else right.push(arr[i]);
}
return [...quickSort(left), pivot, ...quickSort(right)];
}
搜索算法 二分查找的实现:
function binarySearch(sortedArray, target) {
let left = 0;
let right = sortedArray.length - 1;
while (left <= right) {
const mid = Math.floor((left + right) / 2);
if (sortedArray[mid] === target) return mid;
if (sortedArray[mid] < target) left = mid + 1;
else right = mid - 1;
}
return -1;
}
动态规划示例 斐波那契数列实现:
function fibonacci(n, memo = {}) {
if (n in memo) return memo[n];
if (n <= 2) return 1;
memo[n] = fibonacci(n-1, memo) + fibonacci(n-2, memo);
return memo[n];
}
图算法 广度优先搜索实现:
function bfs(graph, startNode) {
const visited = new Set();
const queue = [startNode];
while (queue.length) {
const node = queue.shift();
if (!visited.has(node)) {
visited.add(node);
queue.push(...graph[node].filter(n => !visited.has(n)));
}
}
return Array.from(visited);
}
实用技巧 算法优化时可以考虑:

- 使用Map代替Object提高查找性能
- 合理使用位运算简化计算
- 利用尾递归优化递归算法
- 采用记忆化技术缓存计算结果






