我想了解算法的复杂程度。我认为这对于像我这样试图更好地理解算法是如何制定以及如何解构它们的人来说会很有趣并且很有帮助。
您能否提供一个带解释的基本算法、一个带解释的中级算法,以及一个专家级算法(带或不带)解释?
最佳答案
请允许我推荐您访问这个网站,进行快乐的脑力思考。 http://projecteuler.net/index.php?section=problems
初学者算法:查找序列中与条件匹配的第一个元素。这是一个简单的 O(n) 遍历,例如列表或数组,搜索它看到的第一个真实情况并返回结果或索引位置。
初级-中级算法:定义需要 O(1) 内存的就地堆排序。这需要运用内存和足够的抽象思维来让你摆脱计算科学的束缚。
中级算法:在 5 秒的计算时间内找到第 1,000,000 个质数。这是一个简单的数学问题,大多数程序员应该能够在一天内解决,如果他们认为自己完全熟悉计算科学。
中高级算法:定义遗传算法。这里不多说,直接维基百科一下。
高级算法:定义一个在 O(n) 时间内完成的量子退火排序函数。您可以通过这个获得博士学位。我提到这样的事情对于图灵完备的数字计算系统来说几乎是不可能的,因为正是在这样的地方,计算科学正在开辟新的领域。任何在计算机科学和算法研究方面取得进展的人都会关心这样的奇怪领域。
关于algorithm - 初级算法、中级算法和复杂/专家级算法的示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4430398/