Определение числа максимальных элементов в массиве

Напишем функцию, определяющую количество максимальных элементов в массиве. Если задан массив, состоящий из элементов (4,5,5,5,3,5,2,3,1,3,4), то максимальным значением массива является 5, а число максимальных элементов равно 4.

При просмотре массива кроме максимального значения запоминается количество максимальных значений для просмотренной части массива. Если очередной элемент массива больше, чем максимальное значение для просмотренных элементов, то мак-симальным становится очередной элемент, а количество максимальных равно 1. Если очередной элемент совпадает с максимальным, то число найденных максимальных элементов увеличивается на единицу (листинг 9.2).

Листинг 7.2. Количество максимальных элементов в массиве

function nummax (v)
{ var m= v[0]
var k=1
for (var i=1; i <= v.length-1; i++)
{ if (v[i] > m)
{m= v[i]; k=1}
else
if (v[i] == m) k++
}
return k
}

Поиск элемента в неупорядоченном массиве

Напишем функцию, определяющую, есть ли заданный элемент в массиве.

Если у нас нет дополнительной информации об организации элементов массива, то при поиске элемента в массиве следует воспользоваться алгоритмом, который получил название линейный поиск. Согласно этому алгоритму будем сравнивать поочередно все элементы массива с v с образцом t. Если очередной элемент совпадает с t, то задача решена. Если искомого элемента в массиве нет, то убедиться в этом можем, лишь просмотрев все элементы массива. В качестве результата работы функции можно выдавать логическое значение true, если элемент найден и false в противном случае. Иногда удобно выдавать номер найденного элемента, если же элемента в массиве нет, то некоторое заданное значение, например, -1.

HTML- код, содержащий функцию линейного поиска, представлен в листинге 7.3

Листинг 7.3. Поиск элемента в неупорядоченном массиве

function linsear (v,t)
{ var k=-1
for (var i=0; i <= v.length-1; i++)
if (v[i] == t)
{k=i; break}
return k
}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: