정렬된 유형 요소의 배열이 제공되고 숫자가 num이라고 가정해 보겠습니다. 작업은 주어진 요소 num이 배열에 나타나는 횟수를 계산하는 것입니다. .
입력 - 정수 arr[] ={1, 1, 1,2, 3, 4}, 숫자 =1
출력 − 정렬된 배열의 발생 횟수(또는 빈도)는 − 3입니다.
입력 - 정수 arr[] ={2, 3, 4, 5, 5, 6, -7}, 숫자 =5
출력 − 정렬된 배열에서 발생 횟수(또는 빈도)는 − 2
입니다.입력 - 정수 arr[] ={-1, 0, 1, 2, 3}, 숫자 =7
출력 − 정렬된 배열에서 발생 횟수(또는 빈도)는 − 0입니다.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
위의 문제를 해결하기 위해 따를 수 있는 여러 가지 접근 방식이 있을 수 있습니다.
순진한 접근 방식
-
양수와 음수를 모두 포함하는 정수 요소 배열과 배열에서 빈도를 찾아야 하는 정수 변수 num을 선언합니다.
-
배열의 크기를 계산하고 추가 처리를 위해 모든 데이터를 함수에 전달합니다.
-
변수 num이 나타나는 횟수를 저장하는 임시 변수 count 선언
-
배열의 크기까지 i에서 0까지 FOR 루프 시작
-
루프 내에서 IF num =arr[i]를 확인한 다음 count 값을 1 증가
-
개수 반환
-
결과를 인쇄하십시오.
효율적인 접근 방식
-
양수와 음수를 모두 포함하는 정수 요소 배열과 배열에서 빈도를 찾아야 하는 정수 변수 num을 선언합니다.
-
배열의 크기를 계산하고 추가 처리를 위해 모든 데이터를 함수에 전달합니다.
-
변수 num이 나타나는 횟수를 저장하는 임시 변수 count 선언
-
포인터를 먼저 lower_bound(arr, arr+size, num)
로 설정합니다. -
IF 먼저 확인 =(arr + 크기) || (*첫 번째 !=num) 그런 다음 0을 반환
-
끝 포인터를 upper_bound(first, arr+size, num)로 설정
-
마지막 - 첫 번째로 카운트 설정
-
반품 횟수
-
결과 인쇄
예(순진한 접근 방식)
#include <iostream> using namespace std; int frequency_count(int arr[], int num, int size){ int count = 0; for(int i=0; i<size; i++){ if(num==arr[i]){ count++; } } return count; } int main(){ int arr[] = {1, 1, 1,2, 3, 4}; int num = 1; int size = sizeof(arr)/sizeof(arr[0]); cout<<"Count of number of occurrences (or frequency) in a sorted array are: "<<frequency_count(arr, num, size); return 0; }
출력
위의 코드를 실행하면 다음과 같은 출력이 생성됩니다 -
Count of number of occurrences (or frequency) in a sorted array are: 3
예시(효율적인 접근)
# include <bits/stdc++.h> using namespace std; int frequency_count(int arr[], int num, int size){ int *first = lower_bound(arr, arr+size, num); if (first == (arr + size) || *first != num){ cout<<"The Element is not present in an array "; return 0; } int count = 0; int *last = upper_bound(first, arr+size, num); count = last - first; return count; } int main(){ int arr[] = {1, 1, 1, 2, 3, 4}; int num = 1; int size = sizeof(arr)/sizeof(arr[0]); cout<<"Count of number of occurrences (or frequency) in a sorted array are: "<<frequency_count(arr, num, size); return 0; }
출력
위의 코드를 실행하면 다음과 같은 출력이 생성됩니다 -
Count of number of occurrences (or frequency) in a sorted array are: 3