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

C++를 사용하여 두 배열의 요소 계산

<시간/>

정렬되지 않은 두 개의 배열 arr1[]과 arr2[]가 있다고 가정해 보겠습니다. 작업은 arr1[]의 각 요소가 arr2[]에 있는 요소보다 작거나 같은 arr2[]의 총 요소 수를 계산하는 것입니다. 그러나 두 배열의 요소에도 중복 항목이 포함될 수 있습니다.

예를 들어,

입력-1 -

N =6M =7arr1[N] ={1, 2, 5, 0, 6, 3}arr2[M] ={0,0,1,2,1,3,4,6,8} 

출력 -

4 5 7 2 8 6

이 문제를 해결하는 데 사용된 접근 방식

arr1[]의 모든 요소를 ​​세고 arr2[]의 요소보다 작거나 같은지 확인하려면 arr2[]를 정렬하고 이진 검색 방법을 사용하여 더 작은 요소를 찾는 것입니다. 또는 arr2[]에 있는 요소와 동일합니다.

  • arr1과 arr1의 크기를 'm'과 'n'으로 입력합니다.

  • 배열 요소를 입력합니다.

  • countInSecond(int *arr1, int *arr2, int m, int n) 함수는 두 개의 배열과 그 크기를 입력으로 받아 arr2[]에 있는 요소의 개수를 반환합니다.

  • arr2[]를 정렬합니다.

  • arr1[]을 반복하고 이진 검색을 사용하여 arr2[]에서 특정 요소를 찾습니다.

  • 작거나 같은 요소의 개수를 반환합니다.

예시

#include 네임스페이스 std;void countInSecond(int *nums1,int *nums2,int m,int n){ sort(nums2, nums2+n); 정수 i=0; for(int i=0;i 

출력

위의 코드를 실행하면 출력이 다음과 같이 생성됩니다.

4 5 7 2 8 6

arr2의 요소보다 작거나 같은 arr1의 모든 요소 수는 {4 5 7 2 8 6}입니다.