只是想知道,我在这个问题上看到了不同意见。
如果你取一个字符串数组,说1000个元素并使用sort方法。哪一个会更快?字符串长度为100个字符的数组或字符串长度仅为3个字符的数组?
我试过测试但是我现在有一个Firebug的错误,而Date()似乎太随机了。
谢谢!
答案 0 :(得分:1)
它取决于字符串包含的内容,如果它们包含不同的字符,则不必检查字符串的其余部分以进行比较,因此无关紧要。
例如,"abc" < "bca"
此处只需要检查第一个字符。
您可以阅读以下内容:http://ecma-international.org/ecma-262/5.1/#sec-11.8.5
具体做法是:
否则, px 和 py 都是字符串
- 如果 py 是 px 的前缀,请返回 false 。 (字符串值 p 是String值的前缀 q 如果 q 可以是连接 p 和其他一些String r 的结果。请注意任何 String是其自身的前缀,因为 r 可能是空字符串。)
- 如果 px 是 py 的前缀,请返回 true 。
- 让 k 成为最小的非负整数,使 px 中位置 k 的字符为 与 py 中 k 位置的字符不同。 (两者都必须有这样的 k String是另一个的前缀。)
- 让 m 为整数,它是位于 k 位置的字符的代码单位值 PX
- 设 n 是整数,它是位于 k 位置的字符的代码单位值 吡啶
- 如果 m &lt; n ,返回 true 。否则,请返回 false 。
醇>
答案 1 :(得分:1)
这实际上取决于字符串的不同程度,但我猜这些差异会很小,因为所谓的比较要比实际比较字符串慢。
但话说回来,现代浏览器对sort
使用了一些特殊的优化,因此他们削减了一些比较以加快速度。这种情况会更频繁地对一串短字符串进行排序。
而且仅供参考,如果您想制作一些基准测试,请使用像jsPerf这样的可靠工具。