내 알고리즘 클래스에서 질문이 있는데 해결할 수 없습니다. 질문에 Theres는 정렬 알고리즘이 O(nlogn)
이고 이진 탐색은 O(log n)
입니다. 두 세트는 P
& Q
이고 두 세트가 비 연속적인지 여부를 결정하는 알고리즘을 설계해야합니다.검색 및 정렬을 사용하여 부 집합 집합
답변
O(N)
용액 (두 세트의 정렬 가정) 병합 목록을
- 는 경우, 정보는 두 개의 정렬 된 세트를 병합 끝까지 도달 할 수없는 경우 두 세트에서 두 개의 동일한 원소를 찾는다. 분리형
예 :
a= 1, 4, 6
b= 2, 4, 7
은 이제 =
요소를 설정 병합 된 :1 2 4 4 6 7
설정에는 (A/B) : 이제 1 2 1 2 1 2
우리가 명확하게 두 발로 연속 것을 볼 수 없다 둘 다 서로 다른 두 세트에서 나오므로 분리되지 않습니다.
편집 :
당신의 필요가 세트 간단한 병합 당신에게 그것을 줄 것보다 해체하거나하지 찾을 경우. 당신이 세트에서 두 원소를 찾자 마자 동등한 것이지, 둘 중 하나가 끝날 때까지 도달 할 수 없다면 다른 원소가 떨어져 있지 않다는 말로 귀가한다.
컨테이너 관련 질문. Element[] e=new Element[X];
희망 난 분명 이니로
이class Element{
int i;
int setInfo
}
이제 배열을 선언 : 아래는 점이다.
두 세트 사이에 공통 요소가없는 경우에만 두 세트가 연결되지 않습니다. 나는이 두 세트에 각각 n 개의 원소가 있다고 가정하고있다. 이 알고리즘은 nlog (n) 시간에 공통 요소를 확인합니다. 발견 된 공통 요소가 없으면 두 세트가 서로 떨어져 있음을 의미합니다.
For each element in set "P" search whether that number exist in set "Q".
Time complexity - n*log(n)
Log(n) to search in set Q and this search will be done "n" times.
O (n) 시간마다 검색을 수행 할 수 있도록 세트를 먼저 정렬해야합니다 (다른 O (n log n) 연산). –
검색하기 전에 두 목록을 정렬하면 시간 복잡도는 O (nlogn) + O (nlogn) + O (nlogn) = O (nlogn) [2 정렬 및 하나의 검색]이됩니다. @TedHopp - 바이너리 검색은 O (logn)을 취하고 O (n)보다 선형 검색을 사용하지만 다른 루프가 있기 때문에 O (n^2)가 될 것이므로 O (n) . –
@Ted, 정렬 된 두 배열의 공통 요소 검색이 n 시간 만 걸리는 방법을 설명해 주시겠습니까? – nitinsh99
- 1. MDX 레코드 검색 집합
- 2. MySQL 중첩 집합 검색
- 3. 고유 포인터 집합 검색
- 4. Drupal보기의 결과 집합 검색
- 5. 텍스트 열의 검색 집합
- 6. Wordpress에서 게시물 집합 검색
- 7. 문자열의 문자 집합 검색
- 8. 레일 집합 3에 memcache를 사용하여 레코드 집합
- 9. cscope을 사용하는 문자열 집합 검색
- 10. FHIR 리소스의 하위 집합 검색
- 11. "n"객체의 하위 집합 집합
- 12. Marklogic에서 검색 API를 사용하여 결과 집합 조작
- 13. RIA 서비스를 사용하여 대규모 데이터 집합 검색
- 14. Linq를 사용하여 여러 용어로 데이터 집합 검색
- 15. SDK없이 CRM에서 옵션 집합 검색
- 16. 탄성 검색 하위 집합 필터
- 17. 구성, 집합 및 DI
- 18. SQLite - 테이블에서 이름 집합 검색
- 19. xml 파일의 데이터 집합 검색
- 20. Lucene - 색인에서 단어 집합 검색
- 21. 큰 문자열에있는 키워드 집합 검색
- 22. MySQL 결과 집합 내에서 검색
- 23. Matlab에서 데이터 집합, 유효성 검사 데이터 집합, 테스트 데이터 집합
- 24. 속성 및 개인 집합
- 25. CanCan 및 데이터 집합
- 26. Cakephp 검색 결과 집합 검색 결과
- 27. xml 및 데이터 집합 디자이너가있는 강력한 형식의 데이터 집합
- 28. 이진 검색 알고리즘을 사용하여 임의의 숫자로 숫자 집합 검색
- 29. 형식화 된 데이터 집합 및 형식화되지 않은 데이터 집합
- 30. matplotlib에서 두 개의 부 집합 사이의 거리 만 조정합니다.
두 세트가 정렬되었다고 가정하면 올바른 것입니다. 솔루션을 만들려면 병합 알고리즘 대신 병합 알고리즘을 수정하고 두 요소가 같지 않은지 확인하십시오. – iampat
@Trying, 설정 한 번호의 정보를 저장하는 실용적인 접근법을 제공 할 수 있습니까? int 배열을 제공한다는 것은 어떤 컨테이너를 사용할 것입니까? – nitinsh99
@ nitinsh99이 답변을 편집했습니다. – Trying