|
|
1
26
要想找到最棒的,你需要精确地看3个音,不多不少。你看的是6比3。你应该能够在3和2的比较中做到这一点。
|
|
|
2
14
Pseudocode:
|
|
|
3
12
怎么样
两个比较,不使用临时堆栈变量… |
|
|
4
7
您当前的方法: http://ideone.com/JZEqZTlj (0.40) 克里斯的解决方案:
http://ideone.com/hlnl7QZX (0.39秒) Ignacio Vazquez Abrams的解决方案:
http://ideone.com/JKbtkgXi (0.40) 查尔斯·布雷塔纳的:
http://ideone.com/kyl0SpUZ (0.40) 在这些测试中,所有的解决方案都需要在3%的时间内执行。您试图优化的代码非常短。即使您能够从中挤出1条指令,也不太可能在整个程序中产生巨大的差异(现代编译器可能会捕捉到这种小的优化)。把你的时间花在别处。 编辑: 更新了测试,结果发现之前它仍然在优化部分测试。希望不会再这样了。 |
|
|
5
5
对于这样的问题, 除了知道你的优化编译器在做什么以及硬件上有什么可用性之外,没有什么可以替代的。 . 如果您所拥有的基本工具是二进制比较或二进制最大值,则两个比较或最大值都是必要的和足够的。 我更喜欢伊格纳西奥的解决方案:
因为在普通的现代英特尔硬件上,编译器会发现只发出两个比较和两个比较非常容易
注意,很难将此代码嵌入到 程序 你的选择会带来不同… |
|
|
6
4
我喜欢把有条件跳跃作为一种智力练习来消除。我不知道这是否对绩效有什么可测量的影响:)
这个小把戏只是为了好玩,
|
|
|
7
3
不确定这是否是最有效的,但它可能是,而且肯定更短:
|
|
|
8
1
有一个建议把这个包含在N2485下的C++库中。建议很简单,所以我在下面包含了有意义的代码。显然,这假设变量模板
|
|
|
9
0
|
|
10
0
我认为,通过“最有效的”方式,你在谈论性能,而不是浪费计算资源。但是,您可能指的是编写更少的代码行,或者您的源代码的可读性。我在下面提供一个例子,你可以评估你是否找到有用的东西,或者你是否更喜欢从你收到的答案中得到另一个版本。
|
|
11
-1
3个数字中最大的
|
|
|
William · 在Python数组中使用max()和min()失败 8 年前 |
|
|
user8962187 · 从python上的列表中获取索引[重复] 8 年前 |
|
|
trayvou jba · 尝试添加包括本机min函数的计算值 8 年前 |
|
|
SystemX17 · C#从4个最大/最小选择中找到2个最强值 8 年前 |
|
Kevin Cruijssen · 再现行为最大值和最小值 8 年前 |