Мне нужно написать функцию, чтобы найти режим массива. Однако я не умею придумывать алгоритмы, и я надеюсь, что кто-то еще знает, как это сделать.Как найти режим сортированного массива?
Я знаю размер массива и значения в каждом элементе, и у меня массив отсортирован от наименьшего к наибольшему.
массив будет передан функции, как режим
режим = findMode (arrayPointer, sizePointer);
UPDATE:
После прочтения комментариев я попытался это
int findMode(int *arrPTR, const int *sizePTR)
{
int most_found_element = arrPTR[0];
int most_found_element_count = 0;
int current_element = arrPTR[0];
int current_element_count = 0;
int count;
for (count = 0; count < *sizePTR; count++)
{
if(count == arrPTR[count])
current_element_count++;
else if(current_element_count > most_found_element)
{
most_found_element = current_element;
most_found_element_count = current_element_count;
}
current_element = count;
current_element_count=1;
}
return most_found_element;
}
Я по-прежнему возникают проблемы, схватив этот алгоритм, хотя, если кто-нибудь может сортировать меня. Я никогда не использовал векторы, поэтому не понимаю других примеров.
0 возможно, вы можете описать некоторые вещи, которые попробовали, и, возможно, разместите код. Вот вам подсказка: вы можете попытаться пройти через массив, и каждый раз, когда вы видите элемент, увеличивайте счетчик элементов на единицу. – asf107
Что такое «режим массива»? – wilhelmtell
Вы хотите _mode_ массива? Вы имеете в виду _mean_? Или _median_? Или мне нужно выучить новый термин? EDIT: [Режим - это настоящая вещь! IR LERND] (http://www.mathsteacher.com.au/year8/ch17_stat/02_mean/mean.htm) –