我想了解算法所涉及的复杂范围。我认为对于像我这样的人来说,尝试更好地理解算法的制定方法以及如何解构它们将会很有趣和有用。
你能提供一个带解释的基本算法,带解释的中间算法,以及一个专家级别(有或没有)解释吗?
答案 0 :(得分:5)
请允许我推荐您访问本网站以获得快乐的脑力劳动。 http://projecteuler.net/index.php?section=problems
初学者算法:查找与标准匹配的序列的第一个元素。这是一个简单的O(n)遍历,例如,列表或数组,搜索它看到的第一个真实案例并返回结果或索引位置。
初级中级算法:定义需要O(1)内存的就地堆排序。这需要玩记忆和足够的抽象思维来打破你的计算科学尿布。
中间算法:在计算时间的5秒内找到第1,000,000个素数。这是一个简单的数学问题,大多数程序员应该能够在一天内解决,如果他们认为自己完全熟悉计算科学。
中级 - 高级算法:定义遗传算法。这里不多说,只是维基百科。
高级算法:定义在O(n)时间内完成的量子退火排序函数。您可以使用此算法获得博士学位。我提到像这样的东西几乎不可能用图灵完整的数字计算系统,因为在这样的地方,计算科学正在走向新的领域。任何在计算机科学和算法研究方面都很先进的人都会关注这样的奇怪理由。
答案 1 :(得分:0)
根据我对算法大学课程的记忆,我们首先开始使用各种类型,例如merge sort和quick sort,然后我们学习了Dijkstra's algorithm