javascript - 比较两个字符串的时间复杂度

标签 javascript algorithm

ff函数o(nlogn)的运行时间如何?

function isPermutation(a, b) {
    if (a.length !== b.length) {
        return false;
    }
    return a.split("").sort().join() === b.split("").sort().join();
}

你不是检查两个字符串的长度,还是取决于排序的实现?

最佳答案

根据Permutation的定义, 当且仅当第一个字符串中的所有字符也在第二个字符串中时,一个字符串是另一个字符串的排列。

示例:"answer""awerns" 的排列。

因此,要编写一种算法来检查一个字符串是否是另一个字符串的排列,您所要做的就是:

  1. 检查两个字符串的长度是否相同,如果不相同则返回false。

  2. 对于字符串一中的每个字母,检查它是否也存在于字符串二中。

上述算法的运行时间将为O(n*n)但您可以使用排序来解决同样的问题:

  1. 检查两个字符串的长度是否相同,如果不相同则返回false。
  2. 对两个字符串进行排序

  3. 字符串中的每个字符按顺序排列,如 stringOne[i] == stringTwo[i]

所以在这一个中,如果你使用像 Quick Sort 这样好的排序算法或 Merge Sort整体运行时间将为 O(n*logn)

关于javascript - 比较两个字符串的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33704855/

相关文章:

javascript - ASP.NET 上的简单 jquery 无法在 Firefox 上运行

javascript - 如何强制:fullscreen pseudoclass to follow the same rules as :not(:fullscreen)?

javascript - IONIC 3 中的 setInterval

c++ - 创建对 vector 的问题

javascript - 错误 : Cannot use GraphQLSchema "[object GraphQLSchema]" from another module or realm

php - 为目录树动态创建下载链接

algorithm - T(n) = 2T(n/2) + log n 的解

algorithm - k均值聚类可以做分类吗?

c - 使用链表实现队列时出现未知编码错误

algorithm - 循环中的大 O 复杂性