Мне нужно написать функцию, чтобы найти режим массива. Однако я не умею придумывать алгоритмы и надеюсь, что кто-то другой знает, как это сделать.
Я знаю размер массива и значения в каждом элементе, и я отсортировал массив от наименьшего к наибольшему.
Массив
будет передан в функцию mode, как
mode = 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;
}
У меня все еще есть проблемы с пониманием этого алгоритма, если кто-то может разобраться со мной.
Я никогда не использовал векторы, поэтому не понимаю других примеров.