0

只是想知道,我在这个问题上看到了不同的意见。

如果你取一个字符串数组,比如 1000 个元素并使用 sort 方法。哪个会更快?一个字符串长度为 100 个字符的数组,还是一个字符串长度只有 3 个字符的数组?

我尝试测试,但目前 Firebug 有一个错误,并且 Date() 显得过于随机。

谢谢!

4

2 回答 2

1

这取决于字符串包含的内容,如果它们包含不同的字符,则不必检查字符串的其余部分进行比较,所以没关系。

例如,"abc" < "bca"这里只需要检查第一个字符。

您可以阅读此规范:http ://ecma-international.org/ecma-262/5.1/#sec-11.8.5

具体来说:

否则,pxpy都是字符串

  1. 如果pypx的前缀,则返回false。(如果q可以是连接p和其他字符串r的结果,则字符串值p是字符串值 q的前缀。请注意,任何字符串都是其自身的前缀,因为r可能是空字符串。)
  2. 如果pxpy的前缀,则返回true
  3. k为最小的非负整数,使得px中位置k处的字符与py中位置k处的字符不同。(必须有这样的k,因为 String 都不是另一个的前缀。)
  4. m为整数,它是px中位置k处 字符的代码单元值。
  5. n为整数,它是py中位置k处 的字符的代码单元值。
  6. 如果m < n,则返回true。否则,返回false
于 2012-07-11T20:30:38.613 回答
1

这实际上取决于字符串的不同程度,但我想差异会很小,因为进行比较的方法比实际比较字符串要慢得多。

但是话又说回来,现代浏览器使用了一些特殊的优化sort,所以他们减少了一些比较来加快速度。这会更频繁地对一组短字符串进行排序。

仅供参考,如果您想进行一些基准测试,请使用可靠的工具,例如jsPerf

于 2012-07-11T20:36:28.827 回答