我不确定如何计算算法的最坏情况运行时间。我熟悉渐近符号,但不确定如何使用它。解释的一个例子可能是:
class Downloader {
class func load(url: URL) { // better func load(from url: URL)
let sessionConfig = URLSessionConfiguration.default
let session = URLSession(configuration: sessionConfig, delegate: nil, delegateQueue: nil)
let task = session.dataTask(with: url) { (data, response, error) in
// handle the error
// process the data
}
task.resume()
}
}
这具有一组N个点(X1,Y1)......(XN,YN)的输入,其中N> = 2。输出应该是最近点对的平方距离。我如何计算这个的运行时间?
答案 0 :(得分:1)
该算法从 N 输入中获取所有可能的对。存在 n(n-1)/ 2 对,这是内循环的内部执行的次数。假设算术运算在时间上是恒定的,那么时间复杂度是 O(n 2)。
请注意,此算法中没有未知因素会影响时间复杂度,因此这是最佳和最佳的因素。最坏情况时间复杂度:θ(n²)