我正在尝试优化在JavaScript中对字符串进行二进制搜索的函数。
二进制搜索要求您知道键是==枢轴还是<枢轴。
==
<
但这需要JavaScript中的两个字符串比较,这与同类C语言不同,后者具有strcmp()返回三个值(-1, 0, +1)(小于,等于,大于)的函数。
C
strcmp()
(-1, 0, +1)
JavaScript中是否有这样的本机函数可以返回三进制值,以便在二进制搜索的每次迭代中只需要一个比较?
您可以使用该localeCompare()方法。
localeCompare()
string_a.localeCompare(string_b); /* Expected Returns: 0: exact match -1: string_a < string_b 1: string_a > string_b */