Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 빈도가 n/2보다 크거나 같은 정렬된 배열에서 요소를 찾습니다.


크기가 n인 배열이 있다고 가정해 보겠습니다. 이 배열은 정렬됩니다. 빈도가 n/2보다 크거나 같은 요소가 하나 있습니다. 여기서 n은 배열의 요소 수입니다. 따라서 배열이 [3, 4, 5, 5, 5]와 같으면 출력은 5가 됩니다.

이러한 유형의 배열을 자세히 관찰하면 빈도가 n/2 이상인 숫자가 인덱스 n/2에도 존재한다는 것을 쉽게 알 수 있습니다. 따라서 요소는 n/2 위치에서 찾을 수 있습니다.

예시

Source Code:
#include<iostream>
using namespace std;
int higherFreq(int arr[], int n) {
   return arr[n / 2];
}
int main() {
   int arr[] = { 1, 2, 3, 4 , 4, 4, 4, 4, 4, 5};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << "The number " << higherFreq(arr, n) << " has occurred more than or equal to "<<n <<"/2 amount of times";
}

출력 -

The number 4 has occurred more than or equal to 10/2 amount of times