Top.Mail.Ru
Ответы

Нахождение индексов максимального и минимального элемента массива

Нахождение индексов максимального и минимального элемента массива

По дате
По Рейтингу
Аватар пользователя
Новичок

Поиск индексов экстремумов на Питоне:

1234567
 arr = (int(s) for s in input().split())
imn = imx = 0
mn = mx = next(arr)
for i, e in enumerate(arr, 1):
    if e < mn: imn, mn = i, e
    elif e > mx: imx, mx = i, e
print(imn, imx) 

Индексы считаются от нуля. Пример.
Ввод:

1
 1 4 6 7 9 2 

Вывод:

1
 0 4 

(0-й элемент - это 1, а 4-й элемент - это 9)

Аватар пользователя
Высший разум

Извините, но Вам лютый бред написали. Вот правильно работающая программа на Пайтоне, находящая и выводящая все индексы минимального и максимального элементов, сколь часто бы они не повторялись в рандомно сгенерированном массиве элементов со значениями из диапазона [a;b]:

12345678910111213
 from random import randint 
a, b, n = map(int, input('a b n: ').split()) 
A, m = [randint(a, b) for i in range(n)], 0 
for a in A: 
    print('%5d' % a, end = ''); m += 1 
    if m == 10: m = 0; print() 
if m: print() 
mini, maxi, indmin, indmax = min(A), max(A), [], [] 
for i in range(n): 
    if A[i] == mini: indmin.append(i) 
    if A[i] == maxi: indmax.append(i) 
print('min =', mini, ', №№:'); print(*indmin) 
print('max =', maxi, ', №№:'); print(*indmax) 


Видите сколько разных индексов может быть в массиве у наибольшего и наименьшего по значению элементов?

Аватар пользователя
Мыслитель

Для нахождения индексов максимального и минимального элемента массива можно использовать следующий алгоритм:

1. Инициализировать переменные для хранения индексов максимального и минимального элементов массива:

```
int maxIndex = 0;
int minIndex = 0;
```

2. Пройти по всем элементам массива и сравнить их со значениями максимального и минимального элементов:

```
for (int i = 1; i < array.length; i++) {
if (array[i] > array[maxIndex]) {
maxIndex = i;
}
if (array[i] < array[minIndex]) {
minIndex = i;
}
}
```

3. После завершения цикла переменные `maxIndex` и `minIndex` будут содержать индексы максимального и минимального элементов массива соответственно.

Полный код для нахождения индексов максимального и минимального элемента массива:

```
public static void main(String[] args) {
int[] array = {5, 2, 9, 1, 7, 3};
int maxIndex = 0;
int minIndex = 0;
for (int i = 1; i < array.length; i++) {
if (array[i] > array[maxIndex]) {
maxIndex = i;
}
if (array[i] < array[minIndex]) {
minIndex = i;
}
}
System.out.println("Индекс максимального элемента: " + maxIndex);
System.out.println("Индекс минимального элемента: " + minIndex);
}
```