bab*_*doc 2 algorithm math optimization performance mathematical-optimization
我试图理解算法的概念,以及它们如何提高计算机程序的性能.
所以假设,我必须编写一个程序,生成一个数字列表,
从数字1开始.
添加3.
将结果(1 + 3 = 4)存储在列表中.
将5添加到新号码.
将结果(4 + 5 = 9)存储在列表中.
保持另外将3和5添加到列表中的最新数字.
现在这是一个非常简单的程序,并且假设程序必须在数字大于10,00,000时停止,并且假设一个简单的程序执行此操作需要10秒来生成列表.
如何为此问题设计算法,以便程序花费较少的时间来生成列表.
注意 - 我试图通过一个例子来理解这里的概念,上面提到的时间是随机的而不是事实的.如果有人能够帮助我用一个"简单"的例子来理解这个概念,如果他们不想使用上面的例子那就太棒了.
您上面给出的内容(生成列表的步骤列表)是一种算法.
效率的显着提高通常意味着从一种算法转换到另一种算法,以较少的工作完成相同的目标.例如,对于上面的算法,您可能会尝试完全避免创建列表(如此),而是替换可以快速生成列表中任何特定点的结果的算法 - 给定N作为输入,它将做点什么
int n = N/2;
int m = N-n;
return 1 + n * 3 + m * 5;
Run Code Online (Sandbox Code Playgroud)
请注意,这段代码可能并不完全正确(我认为它不能正确处理奇数与偶数输入数字),但是你得到了一般的想法 - 而不是执行一系列操作来获得一个结果,它执行少得多的操作以产生相同的结果.
| 归档时间: |
|
| 查看次数: |
270 次 |
| 最近记录: |