현재 모든 정수 요소가 서로 일치하는지 테스트하여 일치하는 정수 요소를 찾습니다. 배열은 자체 세트 내에 중복을 포함하지 않습니다. 또한 배열이 항상 동일한 길이는 아닙니다. 이 속도를 높이기위한 트릭이 있습니까? 저는 수천 번하고 있습니다. 그래서 C#에있는 제 프로그램에서 병 목이되기 시작합니다.배열간에 일치하는 항목을 찾는 가장 빠른 방법은 무엇입니까?
답변
사용하십시오 HashSet의
var set = new HashSet<int>(firstArray);
set.IntersectWith(secondArray);
세트는 이제 두 배열에 존재하는 경우에만 값이 포함되어 있습니다.
var query = firstArray.Intersect(secondArray);
를 또는 배열이 이미 정렬하는 경우 당신은 두 개의 배열을 통해 자신을 반복 할 수 있습니다 :
당신이 원하는 것 같아요. 인터체인지보다는. 유니온 –
아 뇌의 방귀! 감사. 나는 그것을 편집했다. – Josh
IntersectWith로 HashSet을 시도한 결과, 모든 요소를 반복하는 것보다 두 배 느립니다. –
당신은 LINQ를 사용할 수
int[] a = { 1, 3, 5 };
int[] b = { 2, 3, 4, 5 };
List<int> result = new List<int>();
int ia = 0;
int ib = 0;
while (ia < a.Length && ib < b.Length)
{
if (a[ia] == b[ib])
{
result.Add(a[ia]);
ib++;
ia++;
}
else if (a[ia] < b[ib])
{
ia++;
}
else
{
ib++;
}
}
@ 마크 : 귀하의 코드는 배열이 정렬되어 있다고 조용히 가정합니다. – Vlad
John은 배열이 위의 주석에 정렬되어 있다고 이미 선언했습니다. –
을 같은 비교 프로그램에서 병목 현상 인 경우, 아마도 부적절한 데이터 구조를 사용하고있을 것입니다. 가장 간단한 방법은 데이터를 정렬 된 상태로 유지하는 것입니다. 그런 다음 공통 항목을 찾으려면 두 배열을 한 번만 통과해야합니다. 또 다른 옵션은 데이터를 HashSet에 보관하는 것입니다.
- 1. 목록에서 항목을 찾는 가장 빠른 방법은 무엇입니까?
- 2. 하위 문자열의 모든 항목을 찾는 가장 빠른 방법은 무엇입니까?
- 3. 연락처 일치하는 이름을 찾는 가장 빠른 방법은 무엇입니까?
- 4. 항목을 찾는 가장 효율적인 방법은 무엇입니까?
- 5. 정규식 - 일치하는 항목을 찾는 방법?
- 6. jQuery에서 가장 가까운 자손 (셀렉터와 일치하는)을 찾는 방법은 무엇입니까?
- 7. 문자열 멤버의 조건과 일치하는 컬렉션에서 객체를 찾는 가장 빠른 방법
- 8. 여러 옵션 속성간에 가장 일치하는 항목을 찾는 방법
- 9. 양의 정수를 찾는 가장 빠른 알고리즘은 무엇입니까?
- 10. 문자열이 단어 배열과 일치하는 횟수를 찾는 가장 효율적인 방법은 무엇입니까?
- 11. 1ms의 정확도로 창에서 시간을 찾는 가장 빠른 방법은 무엇입니까?
- 12. Eclipse 용 Zend Studio에서 파일을 찾는 가장 빠른 방법은 무엇입니까?
- 13. 파일 인덱싱 및 폴더에서 파일을 찾는 가장 빠른 방법은 무엇입니까?
- 14. 가장 빠른 작업 프록시 서버를 찾는 프로그램을 작성하는 방법은 무엇입니까?
- 15. 목록에서 가장 빠른 항목을 선택하십시오.
- 16. C#. 어떤 문자열과도 일치하는 가장 빠른 정규식
- 17. Azure 테이블의 최신 항목을 쿼리하는 가장 빠른 방법은 무엇입니까?
- 18. SQLite에서 모든 항목을 검색하는 가장 빠른 방법은 무엇입니까?
- 19. 이러한 문자열이 일치하는 가장 좋은 방법은 무엇입니까?
- 20. mongodb에서 일치하는 레코드를 찾는 방법은 무엇입니까?
- 21. 가장 빠른 저장 방법은 무엇입니까?
- 22. PHP로 Google지도에 항목을 배치하는 데 가장 빠르고 가장 빠른 방법
- 23. 가장 빠른 방법은 파이썬
- 24. 벡터의 회전을 찾는 가장 빠른 방법
- 25. 가장 일치하는 속성을 가진 레코드를 찾는 알고리즘
- 26. 패턴과 일치하는 가장 짧은 문장을 찾는 알고리즘
- 27. javascript를 사용하여 큰 문서에서 정규식 일치를 찾는 빠른 방법은 무엇입니까?
- 28. regex 캡처 그룹에서 가장 일치하는 항목을 찾으십시오
- 29. jQuery에서 요소 스타일을 전환하는 가장 빠르고 가장 빠른 방법은 무엇입니까?
- 30. 깨진 DIV를 찾는 가장 빠른 방법
두 배열에 존재하는 모든 정수의 고유 한 목록을 원한다고합니까? – Thomas
Thomas의 코멘트에 추가하려면 배열이 정렬되어 있습니까? –
그것은 그것을 놓는 또 다른 방법입니다. 두 세트에서 공통된 고유 한 목록입니다. 예, 그들은 명령을받습니다. –