我的同行正在撰写一份报告,显示我们小型咨询公司每位员工的每周(周日至周六)预付款.他编写了一段代码,显示了与目标周中的日期相对应的列.他的算法如下:
当然,该标志表示当前周是什么.
我建议另一种算法:
我的算法中的"困难"部分是第1部分.我的意思是"难以",因为"难以理解",因为这样做的算法复杂性是不变的.我的算法具有更紧密的循环优势.我的同行循环对每月的每一天进行比较.我没有.
这是一个小例子,你可能会说这里的过度优化有点过于偏执.但是当我们编写实际的性能关键代码时,他的编程风格并没有改变.
他的代码也充满了这些测试:
/* doSomething() doesn't change the state of the relevant variables. */
if (condition)
{
flag++;
if (flag > test)
doSomething();
}
else
if (flag >= test)
doSomething();
Run Code Online (Sandbox Code Playgroud)
当然,当它可以这样做:
if (flag >= test);
doSomething();
if (condition)
flag++;
Run Code Online (Sandbox Code Playgroud)
我该怎么办?!?!?!
编辑:我更正了代码示例中的比较.
Jor*_*ren 10
我认为你的朋友有正确的想法.采用对算法来说明显正确的算法需要花费一个小时来解释,但是没有特定的性能目标,速度会更快.
如果您有特定的性能要求,例如"代码需要能够在机器X上的200微秒内在未来十年内为所有月份提供正确的结果",并且更简单的代码不符合要求,那么您可能会考虑使用版.
(您发布的代码示例确实在您的方式上更好,因为它不那么复杂.)
| 归档时间: |
|
| 查看次数: |
528 次 |
| 最近记录: |