algorithm - 我们如何对各种算法进行分类?

标签 algorithm

我们如何对各种算法进行分类?

我听过各种名称:分而治之算法、确定性算法、概率算法、就地算法等。

它们是否形成任何类型的分类层次结构?

请提供任何网络链接。

最佳答案

算法有一些不同的分类:

他们解决问题的方式

经典算法:

非经典的:

但是这种算法是确定性的或非确定性的,意味着每次在特定输入上运行它们将得到相同的结果(确定性的)或不同的结果(非确定性的)。

而且这个算法有太多不同的问题,每个问题都使用所有算法的混合,例如欧几里德图中的TSP可以通过使用dfs和图算法来近似,随机游走,....和ATSP (非对称图中的 TSP)可以通过线性规划和一些高级图算法的组合来近似。

但是有一个著名的问题分类,我们可以将其扩展到时间复杂度的算法(还有内存,但现在内存不再像时间那样受到关注):

  • P
  • NP
  • 全国人大
  • NPC强
  • NP 困难
  • 共同NP
  • ...

关于algorithm - 我们如何对各种算法进行分类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4420671/

相关文章:

C++排序算法持续时间

algorithm - 使用遗传算法选择稀疏参数

javascript - 如何确定 Javascript 中项目网格中选择范围之间的重叠

.net - 计算两条路由是否为 "close enough"的算法

javascript - 如何在不进行切换的情况下计算出正确的数字?

algorithm - 坏斐波那契算法的性质

algorithm - 计算连续素数分解

c编译器类型检查算法和语义分析

java - 为什么如果我直接添加答案,我的列表函数在这个问题中不起作用,但如果我创建列表的副本则起作用

c++ - 非恢复浮点平方根算法