Python数据结构 算法类

Python数据结构 算法类

算法是明确的步骤,它应该通过处理零个或多个输入来给我们一个明确的输出。这导致了在设计和编写算法时的许多方法。据观察,大多数的算法可以被分为以下几类。

贪婪算法

贪婪算法试图找到一个局部的最佳解决方案,这可能最终导致全球优化的解决方案。然而,一般来说,贪婪算法并不能提供全局优化的解决方案。

因此,贪婪算法在那个时间点上寻找一个容易的解决方案,而不考虑它对未来步骤的影响。这类似于人类解决问题的方式,没有经过所提供的输入的完整细节。

大多数网络算法都使用贪婪的方法。这里列出了其中的几项–

  • 旅行推销员问题

  • Prim的最小生成树算法

  • Kruskal的最小跨度树算法

  • Dijkstra的最小跨度树算法

分而治之

这类算法包括将给定的问题划分为更小的子问题,然后独立解决每个子问题。当问题无法进一步细分时,我们开始合并每个子问题的解决方案,以得出更大问题的解决方案。

分割与征服算法的重要例子有

  • 合并排序

  • 快速排序

  • Kruskal的最小生成树算法

  • 二进制搜索

动态编程

动态编程涉及到将大问题分成小问题,但与分而治之不同,它不涉及独立解决每个子问题。相反,较小的子问题的结果被记住并用于类似或重叠的子问题。

大多数情况下,这些算法被用于优化。在解决手头的子问题之前,动态算法会尝试检查以前解决的子问题的结果。动态算法的动机是对问题的整体优化,而不是局部优化。

动态编程算法的重要例子有

  • 斐波那契数列

  • Knapsack问题

  • Hanoi塔

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程