Я должен найти 3 значения max в массиве реальных данных. Проблема заключается в том, что эти 3 значения должны варьироваться в зависимости от конкретного минимального значения (которое является параметром). Это означает, что если у меня есть массив с 10 элементами {1,2,3,4,5,6,7,8,9,10}, то 3 max значения в этом массиве равны 8,9,10, но если значение параметр, например, «2», эти 3 значения max должны меняться как минимум около «2», поэтому реальные максимальные значения в моем случае будут 10, 8, 6. Я считаю, что алгоритм программы будет выглядеть следующим образом: :C++, нахождение 3 максимальных значений в массиве, где разница между этими значениями является одним из параметров
1) найти 3 максимальные значения (петля) 2) проверить, если они изменяются по меньшей мере примерно от параметра 2а), если да, вернуть эти 3 значения 2b), если нет, то вернитесь к петле, поиск снова 3 но игнорирует это значение, которое не удовлетворяет условию?
Я не могу представить реальный код в C++ для этого решения. Может ли кто-нибудь дать совет, как это сделать?
Являются ли значения в массиве отсортированными? –
['std :: sort'] (http://en.cppreference.com/w/cpp/algorithm/sort) данные в массиве. затем перейдите к массиву, начиная с самого высокого (который будет одним из ваших максимальных значений), затем перейдите к следующему, как определено вашим «параметром», и выберите его, затем следующее. Если вы не хотите сортировать весь массив, используйте ['std :: nth_element'] (http://en.cppreference.com/w/cpp/algorithm/nth_element), чтобы поместить элементы на конкретные позиции * skip * – WhiZTiM