배열과 데이터 구조를 사용하여 여러 메모리 위치에 동종(동일한) 데이터를 저장합니다. 배열 사용의 가장 큰 장점은 인덱스 매개변수를 사용하여 어디서나 배열에 액세스할 수 있다는 것입니다. 데이터를 순차적으로 추가하고 제거해야 한다는 사실은 이 데이터 구조를 선형 구조로 바꿉니다. 배열에서 요소를 검색하려면 대괄호 안에 인덱스나 위치 번호를 사용하면 됩니다. 이 기사에서는 C++를 사용하여 두 배열에 있는 유일한 공통 요소를 가져옵니다.
첫 번째 배열에는 9개의 요소가 있고 두 번째 배열에는 8개의 요소가 있습니다. 따라서 두 배열의 크기가 동일하지 않을 수 있습니다. 우리의 임무는 이 두 배열 사이의 공통 요소를 찾는 것입니다. 여기서는 이 문제를 해결하기 위한 몇 가지 팁을 살펴보겠습니다.
첫 번째이자 가장 일반적인 해결책은 첫 번째 배열의 각 요소를 반복하고 두 번째 배열에서 첫 번째 배열의 각 항목을 검색하는 것입니다. 이 솔루션은 효율성은 떨어지지만 더 간단합니다. 알고리즘과 해당 구현을 살펴보겠습니다.
두 개의 배열 A와 B를 입력으로 사용
모든 반복 요소를 담기 위해 또 다른 배열 D를 정의하세요
A의 각 요소 e1에 대해 다음을 수행하세요
B의 각 요소 e2에 대해 다음을 수행하세요
e1 = e2이면
D
종료
사이클 종료
사이클 종료
D로 돌아가기
C++ STL을 사용하여 set_intersection() 함수는 공통 요소를 반복자 객체로 반환합니다. 하지만 이 기능을 사용하려면 배열을 오름차순으로 정렬해야 합니다. 알고리즘과 C++ 구현 코드를 살펴보겠습니다.
두 개의 배열 A와 B를 입력으로 사용
모든 반복 요소를 담기 위해 또 다른 배열 D를 정의하세요
반복되는 요소 배열에 대한 반복자 만들기
set_intersection() 메서드를 사용하여 A와 B 배열에 대한 교차 연산을 수행하고 결과를 D 배열에 저장합니다
D로 돌아가기
이 글에서는 요소 모음이나 두 개의 배열에서 공통 요소를 찾는 두 가지 방법을 살펴보았습니다. 첫 번째 순진한 해결책은 두 개의 정적 배열을 사용하고 각 요소를 하나씩 스캔하여 공통 요소를 찾는 것입니다. 이 솔루션의 시간 복잡도는 O(n.m)입니다. 여기서 n은 첫 번째 배열의 크기이고 m은 두 번째 배열의 크기입니다. 다음 메소드는 C++ STL 기반 set_intersection() 메소드를 사용합니다. 이 접근 방식에서는 정렬된 벡터를 사용해야 합니다. 그런 다음 메서드는 공용 요소 반복자 개체를 반환합니다. 우리는 그것으로부터 벡터를 생성하고 그것을 반환할 수 있습니다.
위 내용은 두 배열에서 공통 요소를 찾는 C++ 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!