Извлечение трех минимумов - PullRequest
0 голосов
/ 15 марта 2011

Я хочу получить минимум двойного массива и два других минимальных значения. Всего я хочу получить 3 меньших значения массива. Я не использую массив классов, но я использую double[].

Ответы [ 4 ]

6 голосов
/ 15 марта 2011

Самый простой способ - вызвать

Arrays.sort()

и принять первые 3 значения.

В противном случае вы можете просто пройти по массиву и отслеживать три самых маленьких, как и выбудет самым маленьким.

1 голос
/ 15 марта 2011
double[] dlist = {17.0, 10.0, 44, 7, 4.0, 33, 24, 10, 48.0, 49.0};
Arrays.sort (dlist);
System.out.println (dlist [0] + " " + dlist [1] /*...*/);
0 голосов
/ 15 марта 2011

Что ж, если вы вообще не можете использовать класс Arrays, вам, вероятно, понадобятся 3 переменные, по одной для каждого значения, которое вы пытаетесь получить. Просто начните с установки их равными первым 3 элементам в массиве (если их хотя бы 3, в противном случае просто установите несколько из них).

Затем используйте цикл for для прохождения остальных элементов в массиве. Если элемент меньше, чем одно или несколько чисел, которые вы уже нашли, избавьтесь от самого большого из этих чисел и вместо этого добавьте его в список самых маленьких чисел.

1. declare 3 variables
2. set variables equal to first 3 elements in array
3. loop from index 3 (4th element) to the length of the array
   a. see which of the already found numbers is bigger than the current element (if any)
   b.replace the biggest of the found numbers with the new number if at least one was found
4. print out or return the numbers you found
0 голосов
/ 15 марта 2011

Как и выше, вы можете перебрать и сохранить наименьший, а затем удалить из массива.Тогда сделай это снова и снова.Но я думаю, что упомянутые выше способы более эффективны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...