php - PHP explode/implode 的时间复杂度

标签 php algorithm time-complexity

我很想知道 PHP 对爆炸/内爆函数使用什么算法,它们的时间复杂度是多少?

提前谢谢你。

最佳答案

string.c你可以看到算法。它开始于大约 1021 line ..

    if (p2 == NULL) {
    add_next_index_stringl(return_value, p1, Z_STRLEN_P(str), 1);
    } else {
    do {
        add_next_index_stringl(return_value, p1, p2 - p1, 1);
        p1 = p2 + Z_STRLEN_P(delim);
    } while ((p2 = php_memnstr(p1, Z_STRVAL_P(delim), Z_STRLEN_P(delim), endp)) != NULL &&
             --limit > 1);

    if (p1 <= endp)
        add_next_index_stringl(return_value, p1, endp-p1, 1);
    }

它只是一个循环所以我认为它具有O(N) 复杂度。并仔细检查代码。它扫描字符串并将结果添加到 return_value。所以是的。 它是线性的

关于php - PHP explode/implode 的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14077154/

相关文章:

javascript - 将html代码返回给jquery好不好?

python - 在 1D-NumPy 数组中查找单数/局部最大值/最小值集(再次)

algorithm - 指数时间复杂度

algorithm - 奇怪排序的递归关系

php - PHP MySQL 中的 Where 子句不能与 Like 关键字一起使用

php - 使用 Laravel 进行子域路由

javascript - 动画结束后从 JavaScript 检索值

algorithm - 了解 PageRank 和类似算法背后的数学原理

c - 比较大量整数对的快速方法是什么?

algorithm - 确定简单循环的 O-runtime