> 백엔드 개발 > C++ > 본문

두 배열에서 공통 요소를 찾는 C++ 프로그램

WBOY
풀어 주다: 2023-09-09 23:13:09
앞으로
1267명이 탐색했습니다.

두 배열에서 공통 요소를 찾는 C++ 프로그램

배열과 데이터 구조를 사용하여 여러 메모리 위치에 동종(동일한) 데이터를 저장합니다. 배열 사용의 가장 큰 장점은 인덱스 매개변수를 사용하여 어디서나 배열에 액세스할 수 있다는 것입니다. 데이터를 순차적으로 추가하고 제거해야 한다는 사실은 이 데이터 구조를 선형 구조로 바꿉니다. 배열에서 요소를 검색하려면 대괄호 안에 인덱스나 위치 번호를 사용하면 됩니다. 이 기사에서는 C++를 사용하여 두 배열에 있는 유일한 공통 요소를 가져옵니다.

개념을 이해하고 예를 들어 설명하기

으아악

첫 번째 배열에는 9개의 요소가 있고 두 번째 배열에는 8개의 요소가 있습니다. 따라서 두 배열의 크기가 동일하지 않을 수 있습니다. 우리의 임무는 이 두 배열 사이의 공통 요소를 찾는 것입니다. 여기서는 이 문제를 해결하기 위한 몇 가지 팁을 살펴보겠습니다.

순진한 솔루션

첫 번째이자 가장 일반적인 해결책은 첫 번째 배열의 각 요소를 반복하고 두 번째 배열에서 첫 번째 배열의 각 항목을 검색하는 것입니다. 이 솔루션은 효율성은 떨어지지만 더 간단합니다. 알고리즘과 해당 구현을 살펴보겠습니다.

알고리즘

  • 두 개의 배열 A와 B를 입력으로 사용

  • 모든 반복 요소를 담기 위해 또 다른 배열 D를 정의하세요

  • A의 각 요소 e1에 대해 다음을 수행하세요

    • B의 각 요소 e2에 대해 다음을 수행하세요

      • e1 = e2이면

        • D

        • 에 e1을 삽입하세요.
      • 종료

    • 사이클 종료

  • 사이클 종료

  • D로 돌아가기

Example

의 중국어 번역은

Example

입니다. 으아악

출력

으아악

벡터 및 set_intersection() 함수 사용

C++ STL을 사용하여 set_intersection() 함수는 공통 요소를 반복자 객체로 반환합니다. 하지만 이 기능을 사용하려면 배열을 오름차순으로 정렬해야 합니다. 알고리즘과 C++ 구현 코드를 살펴보겠습니다.

알고리즘

  • 두 개의 배열 A와 B를 입력으로 사용

  • 모든 반복 요소를 담기 위해 또 다른 배열 D를 정의하세요

  • 반복되는 요소 배열에 대한 반복자 만들기

  • set_intersection() 메서드를 사용하여 A와 B 배열에 대한 교차 연산을 수행하고 결과를 D 배열에 저장합니다

  • D로 돌아가기

Example

의 중국어 번역은

Example

입니다. 으아악

출력

으아악

결론

이 글에서는 요소 모음이나 두 개의 배열에서 공통 요소를 찾는 두 가지 방법을 살펴보았습니다. 첫 번째 순진한 해결책은 두 개의 정적 배열을 사용하고 각 요소를 하나씩 스캔하여 공통 요소를 찾는 것입니다. 이 솔루션의 시간 복잡도는 O(n.m)입니다. 여기서 n은 첫 번째 배열의 크기이고 m은 두 번째 배열의 크기입니다. 다음 메소드는 C++ STL 기반 set_intersection() 메소드를 사용합니다. 이 접근 방식에서는 정렬된 벡터를 사용해야 합니다. 그런 다음 메서드는 공용 요소 반복자 개체를 반환합니다. 우리는 그것으로부터 벡터를 생성하고 그것을 반환할 수 있습니다.

위 내용은 두 배열에서 공통 요소를 찾는 C++ 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!