代码片段仓库

收集、管理和分享有用的代码片段,提高开发效率

代码片段

归并排序 PHP

实现归并排序算法

<?php
function mergeSort(&$arr) {
    if (count($arr) <= 1) return;
    $mid = count($arr) / 2;
    $left = array_slice($arr, 0, $mid);
    $right = array_slice($arr, $mid);
    mergeSort($left);
    mergeSort($right);
    $arr = merge($left, $right);
}

function merge($left, $right) {
    $result = [];
    while (count($left) && count($right)) {
        if ($left[0] <= $right[0]) {
            array_push($result, array_shift($left));
        } else {
            array_push($result, array_shift($right));
        }
    }
    return array_merge($result, $left, $right);
}
快速排序 PHP

递归实现快速排序

<?php
function quickSort(&$arr) {
    $n = count($arr);
    if ($n <= 1) return $arr;
    $pivot = $arr[0];
    $left = $right = [];
    for ($i = 1; $i < $n; $i++) {
        if ($arr[$i] < $pivot) $left[] = $arr[$i];
        else $right[] = $arr[$i];
    }
    return array_merge(quickSort($left), array($pivot), quickSort($right));
}
斐波那契 PHP

迭代计算斐波那契数

<?php
function fibonacci($n) {
    $a = 0; $b = 1;
    for ($i = 0; $i < $n; $i++) {
        $temp = $a;
        $a = $b;
        $b = $temp + $b;
    }
    return $a;
}
JS数组去重 JavaScript

ES6数组去重方法

const removeDuplicates = (arr) => {
  return [...new Set(arr)];
};

// Usage:
const myArray = [1, 2, 2, 3, 4, 4, 5];
console.log(removeDuplicates(myArray)); // [1, 2, 3, 4, 5]
编辑距离 PHP

计算Levenshtein距离

<?php
function levenshtein($s1, $s2) {
    $len1 = strlen($s1);
    $len2 = strlen($s2);
    $dp = array();
    for ($i = 0; $i <= $len1; $i++) {
        $dp[$i] = array();
        $dp[$i][0] = $i;
    }
    for ($j = 0; $j <= $len2; $j++) {
        $dp[0][$j] = $j;
    }
    for ($i = 1; $i <= $len1; $i++) {
        for ($j = 1; $j <= $len2; $j++) {
            $cost = ($s1[$i - 1] == $s2[$j - 1]) ? 0 : 1;
            $dp[$i][$j] = min(
                $dp[$i - 1][$j] + 1,                                    // Deletion
                $dp[$i][$j - 1] + 1,                                    // Insertion
                $dp[$i - 1][$j - 1] + $cost                        // Substitution
            );
        }
    }
    return $dp[$len1][$len2];
}
背包问题 PHP

动态规划解决0/1背包问题

<?php
function knapsack($W, $wt, $val, $n) {
    $kp = array_fill(0, $n + 1, array_fill(0, $W + 1, 0));
    for ($i = 1; $i <= $n; $i++) {
        for ($j = 1; $j <= $W; $j++) {
            if ($wt[$i - 1] <= $j) {
                $kp[$i][$j] = max($kp[$i - 1][$j], $val[$i - 1] + $kp[$i - 1][$j - $wt[$i - 1]]);
            } else {
                $kp[$i][$j] = $kp[$i - 1][$j];
            }
        }
    }
    return $kp[$n][$W];
}

为什么选择CodeSnippets?

高效管理您的代码片段,提高开发效率

智能搜索

通过关键字、语言或分类快速查找代码片段,支持模糊搜索和过滤功能

语法高亮

支持多种编程语言的语法高亮,使代码更加清晰易读

多设备同步

随时随地访问您的代码片段库,支持桌面和移动设备

热门分类

浏览最受欢迎的代码分类