问题很简单(答案也很简单):
如何找到一个数组中的前两个最小数?
for ( i = 1; i <= n ; i++){
if(v[i] < maxim)
maxim = v[i];
}
cout << maxim;
我能想到的唯一办法是它只会给我展示最小值,而不是前两个最小值。
n
个项。您还可以引入一个额外的变量来存储第二个最低的数字。 - martijnn2008std::sort
可以在一行代码中完成,这样的代码甚至更少 :) http://www.cplusplus.com/articles/NhA0RXSz/ 那第二个变量正是@KamleshArya使用他的链接所建议的(请参见上面的评论)。 - martijnn2008for (int i = 0; i < n ; i++)
。 - Jarod42std::nth_element
也是一行代码,而且渐近最优。 - Nemo