Как определить и найти большие значения в массивах? - PullRequest
0 голосов
/ 23 декабря 2010
array[10]={2,3424,4234,42,234,234,23423,123,342,3}

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

наибольшее число было 23423 и его позиция была 7

Как этот ^^^ для пяти самых больших чисел и их позиций.

Я хочу код для этого;Я студент.

Ответы [ 3 ]

6 голосов
/ 23 декабря 2010

Гарантируется ли в массиве 10 элементов?Они гарантированно будут положительными?Если это так, вы можете умножить каждый элемент на 10 и добавить индекс к нему, затем отсортировать массив, а затем взять 5 самых больших элементов;разделить на 10 (целочисленное деление), чтобы получить исходное число, и взять% 10, чтобы получить исходную позицию.

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

Использовать любой базовый алгоритм сортировки.

0 голосов
/ 23 декабря 2010

Из того, что я понимаю, массив должен быть неизменным, так как вы также хотите найти позиции. Поэтому, если я прав, вы не должны сортировать массив, если только вы не используете новый массив размером 10, сохраняйте отсортированный массив там, сравнивайте и находите между двумя массивами и т. Д.

Если вы хотите найти его без сортировки, вы можете сделать это:

Найти первый по величине номер и его положение Найдите второе по величине число (которое меньше первого по величине числа) и его позицию Найдите третье по величине число (которое меньше второго по величине числа) ...

и т.д ....

Это можно сделать, и это не так сложно.

0 голосов
/ 23 декабря 2010

Вы просто расширяете алгоритм поиска наибольшего числа для поиска n = 5 самых больших чисел.Если вы используете бинарный поиск, что сначала нужно сделать с массивом?Что ж, если вы ответите на этот вопрос, вам, вероятно, вообще не понадобится бинарный поиск;)

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