我有一个正整数列表,希望将其中最大的三个值存储在变量 h1
、h2
和 h3
中。其余值不相关。
我考虑使用 int*
管理它们,并在填充时使用 realloc
调整内存大小,然后使用适当的排序算法进行排序,但这是否真的值得呢?由于我实际上不需要对整个数组进行排序,所以我只是这样做:
if (currentVal > h3) {
h3 = currentVal;
if (currentVal > h2) {
h3 = h2;
h2 = currentVal;
if (currentVal > h1) {
h2 = h1;
h1 = currentVal;
}
}
}
感觉这样做很愚蠢且静态,但这确实有效。我应该使用排序算法吗?如果需要的话,有什么建议可行的算法呢?
std::sort()
时遇到了什么问题? - πάντα ῥεῖ