如何在python中找到内置函数的复杂性

萨尔瓦多·达利

我有问题的特殊情况,但是很高兴知道是否有可能使用任何功能。

所以我想在字符串中找到子字符串的位置。好的,在python中有一个find方法可以完全满足需要。

string.find(s,sub [,start [,end]])

返回s中找到子字符串sub的最低索引,以使sub完全包含在s [start:end]中。失败时返回-1。开始和结束的默认值以及对负值的解释与切片相同。

令人惊讶的是,但是问题在于,根据算法,在大字符串中找到大子字符串可能会从开始O(n*m)到结束O(n)(这很重要)文档没有提供有关时间复杂度的信息,也没有提供有关基础算法的信息。

我看到几种解决方法:

  • 基准
  • 转到源代码并尝试理解它

两者听起来都不是那么容易(我希望有一种更简单的方法)。那么,如何找到内置函数的复杂性呢?

内德·巴切尔德

您说,“去获取源代码并尝试理解它”,但是它可能比您想象的要容易。到达实际的实现代码后,在Objects / stringlib / fastsearch.h中,您将找到:

/* fast search/count implementation, based on a mix between boyer-
   moore and horspool, with a few more bells and whistles on the top.
   for some more background, see: http://effbot.org/zone/stringlib.htm */

那里引用URL对算法及其复杂性进行了很好的讨论。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Java中找到递归方法的时间复杂性?

来自分类Dev

javascript内置函数的复杂性

来自分类Dev

如何找到复杂性?

来自分类Dev

在Python中找到Kth最大元素的整体复杂性

来自分类Dev

您如何找到此类递归函数的空间复杂性?

来自分类Dev

如何找到Xcode项目的循环复杂性?

来自分类Dev

发现函数的复杂性

来自分类Dev

如何在子类的复杂性下最好地定位 toggle() 函数

来自分类Dev

Python的复杂性issubset()

来自分类Dev

python代码的复杂性

来自分类Dev

如何在复杂性方面优化我的 JS 代码

来自分类Dev

如何在复杂的继承层次结构中找到哪个类覆盖了一个函数?

来自分类Dev

Javascript和函数的复杂性

来自分类Dev

高阶函数的计算复杂性?

来自分类Dev

Perl函数定义的复杂性

来自分类Dev

如何计算它的复杂性?

来自分类Dev

如何消除环复杂性

来自分类Dev

如何计算它的复杂性?

来自分类Dev

如何消除环复杂性

来自分类Dev

如何降低 API 的 Url 的复杂性

来自分类Dev

如何降低这种情况的复杂性?

来自分类Dev

Python Set Slice的复杂性

来自分类Dev

Python Sort方法的复杂性

来自分类Dev

Python Sort方法的复杂性

来自分类Dev

在Python中遍历字典的复杂性

来自分类Dev

Python派生类的复杂性

来自分类Dev

如何在php函数中找到参数?

来自分类Dev

如何在php函数中找到参数?

来自分类Dev

python中复杂的内置函数