Mikhailo Asked:2020-12-21 17:19:35 +0000 UTC2020-12-21 17:19:35 +0000 UTC 2020-12-21 17:19:35 +0000 UTC 算法越来越好 772 这里的问题是关于算法的复杂性,是否有可能知道算法的“O”和某个 N 的时间,来估计另一个 N 的时间。 根据 O 表示法的定义,它在某个 N 之后开始渐近逼近。也许是一个大的 N。 但是理论上是不是对于小 N,我们有某种“坏”依赖(嗯,像 N 2甚至 N!),对于大 N(像 N 或 N * log (N ))? 如果是这样,有什么实际的例子吗?只是不是发明的,而是来自现实生活? алгоритм 1 个回答 Voted Best Answer Harry 2020-12-21T17:33:31Z2020-12-21T17:33:31Z 据我了解,您感兴趣的是,对于小型N的,没有那么严重的依赖,因为时间比大型的更糟N? 这不太可能发生,因为这意味着N一个非常糟糕的算法用于小 - 这没有任何意义,除非创建一个满足您好奇心的算法:) 但是对于小型的,这里有一个O(N^2)在速度上会优于的N O(N*log N)方法——这似乎在 C++ 标准库中用于排序——对于大型的,有N一个快速排序,当数组几乎是有序的时,切换插入排序,结果证明在这些条件下非常快。 形式上,插入排序O(N^2)(尽管在这种情况下 - 一个几乎排序的数组 - 倾向于O(N))。 “我想是的”(c)维尼
据我了解,您感兴趣的是,对于小型
N
的,没有那么严重的依赖,因为时间比大型的更糟N
?这不太可能发生,因为这意味着
N
一个非常糟糕的算法用于小 - 这没有任何意义,除非创建一个满足您好奇心的算法:)但是对于小型的,这里有一个
O(N^2)
在速度上会优于的N
O(N*log N)
方法——这似乎在 C++ 标准库中用于排序——对于大型的,有N
一个快速排序,当数组几乎是有序的时,切换插入排序,结果证明在这些条件下非常快。形式上,插入排序
O(N^2)
(尽管在这种情况下 - 一个几乎排序的数组 - 倾向于O(N)
)。“我想是的”(c)维尼