前几天我以为我会尝试在我的代码中创建Fibonacci算法,但我从未擅长数学。
我最后用循环编写自己的方法,但它看起来效率低或不是'正确的方法'。
有没有人有关于在代码中实现算法的任何建议/阅读材料?
答案 0 :(得分:4)
我发现Project Euler对这类事情很有用。它迫使您考虑算法然后实现它。然后,许多问题就如何解决问题(从天真的解决方案到一些非常巧妙的解决方案)进行了广泛的讨论,你可以用它们来看看你做对了什么。
在讨论主题中,您也可以找到来自不同语言的其他人的各种实现。自己提出解决方案然后将其与其他人的解决方案进行比较是(imho)学习的好方法。
答案 1 :(得分:1)
这两本介绍性书籍都有关于此类事情的良好信息: How To Design Programs以及更多Structure and Interpretation of Computer Programs
两者都有点功能(和方案),但这很适合这些问题。
最重要的是,您可能会从Project Euler
中获得相当多的收益答案 2 :(得分:1)
继续浏览youtube并查看有关算法简介的一些讲座。有一些非常非常好的讲座可以分解一些最常见的算法,比如Fibonacci系列以及如何优化它们。
开始阅读有关O符号的内容,这样您就可以了解算法如何通过可变大小输入增长,以及如何对算法的运行时间进行分类。
从这个视频系列开始,我找到了关于这个主题的优秀材料:
答案 3 :(得分:1)
导出您的算法测试驱动。通过使用TDD,我能够比以前更正确地编写更复杂的算法。
答案 4 :(得分:0)
如果你不能将斐波纳契函数的伪代码翻译成你的语言,那么你应该去找一个基本的语言教程,因为你似乎还没有掌握它的基本习语。
如果您有一个可行的解决方案,但对此感到不安全,请将其显示给其他人进行审核。