2016-01-23 54 views

回答

1

这可能取决于ECMAScript引擎,但这里是我的基于查看JavaScriptCore(JSC)实现的猜测,这是WebKit的JavaScript实现。下面的时间复杂度是在我的部分猜测总...

substring()方法似乎有0(n)的时间复杂度,因为我相信它遍历基础上,startend参数的字符。

模数法很可能是0(n/m)的时间复杂度,其中n是被分割的数字,m是用于除以的数字。大数除以小数将需要更多迭代。有可能是某些情况下一些优化,比如0,1分,等

在这种特殊情况下,到今年转换为使用toString()最有可能的字符串的要求使得模方法稍微更好的性能。任何收益可能都很小,无法察觉。

但是,还有一个更重要的因素需要考虑。模数方法可能会在特殊情况下导致问题。例如,2000年的结果为0.

> 2000%100 
< 0 

这可能会导致您的脚本出现问题。

最后,substring()方法是更安全,几乎相同的高性能解决方案。

0

我不会惊慌内存等成本 - (除非它显然会减慢速度)

只是什么是简单和容易,当你回到它认识到去 - 这将是选项2

+0

感谢您的回复。我想补充一点。在选项2中,对于单个事物有两个操作,而在第一个中只有一个操作。就更好的编程而言,这是否是一个问题? –

+0

公平点,但我仍然说它是最不重要的 - 也见布雷特的答案 –

相关问题