최근 브랜치와 바운드 방식에 혼란 스러웠습니다. 브랜치 앤드 바운드 방식에는 깊이 우선 검색, 폭 우선 검색 및 최상 우선 검색이라는 세 가지 검색 전략이 있습니다. 모든 책과 문헌에 따르면 폭과 우선은 컴퓨터가 사용하는 메모리를 더 많이 차지합니다. 이것을 이해하는 방법? 예를 들어, 라이브 노드 목록에서 노드 (아버지 노드)를 처리 할 때 2 개의 하위 노드 (또는 아들 노드)가 생성되어 활성 노드 목록에 삽입되지만이 노드는 삭제되어야합니다 따라서 하나의 노드에서 메모리가 증가합니다. 이러한 관점에서 볼 때 세 가지 검색 전략 모두 컴퓨터의 동일한 기억을 취합니다. 맞습니까? 오랫동안 혼란 스러웠습니다. 아무도 내게 약간의 조언을 줄 수 있습니까? 당신은 데이터 구조에 대해 생각할 수있는브랜치와 바운드에서 너비 우선 검색의 메모리 문제를 이해하는 방법
1
A
답변
0
음 :
폭 우선 검색 : 오기 '큐로 구현. 노드 (아버지 노드)를 확장하면 아들 노드가 대기열에 포함됩니다. 아버지 노드가 삭제됩니다. 그래서 45를 우리는 큐 20과 70을 포함 삭제 :
이 45를 확장 Let's는 예를하게
20 | 70
20를 확장 : 우리는 큐에서 첫 번째 노드를 확장하고 그의 아들을 포함한다 :
70 | 10 | 28
70를 확장 : 우리는 큐에서 첫 번째 노드를 확장하고 그의 아들을 포함한다 :
10 | 28 | 60 | 85
기타 등등 ...만약 공간 복잡성시피
는 지수이다 O () (B = 인자 분파; D = 깊이 초기 0)
Deepth 우선 검색 : 그것을
-
,536,913,632 : 스택으로 구현 것 우리는 스택 (20) 및 (70)을 포함하고 있으므로 45 삭제 : 10
45를 확장
20 | 70
20를 확장 : 우리는 스택의 상단에서 첫 번째 노드를 확장하고 그의 아들을 포함한다 :
10 | 28 | 우리는 스택의 상단에서 첫 번째 노드를 확장하여 그의 아들과 같습니다 : 70
10를 확장
1 | 18 | O (d) : | 28
70
등등 ... 편지 공간 복잡도 선형이다. 시간 복잡도는 두 알고리즘에서 O ()입니다.
최고 우선 검색 : 정렬 (N) 휴리스틱 평가 함수 F에 따르면 큐 최고의 F (N)과 succesor 확장. 공간 복잡성은 선형입니다 : O (d).
희망이 도움이됩니다.
관련 문제
- 1. 너비 우선 검색과 깊이 우선 검색의 입력/출력
- 2. 이진 검색과 깊이 우선 검색의 차이점
- 3. 깊이 우선 검색의 코드가 잘못되었습니다.
- 4. windbg에서 메모리 덤프를 이해하는 방법?
- 5. 문제를 이해하는 자바 스레드
- 6. 메모리 문제를 해결하는 방법
- 7. 메모리 문제를 해결하는 방법
- 8. tcp windows 서버 연결 문제를 이해하는 방법?
- 9. 너비 우선 조합
- 10. 병렬 너비 우선 검색
- 11. 너비 우선 검색 순서
- 12. 너비 우선 검색 java.lang.NullPointerException
- 13. 깊이 또는 너비 우선 검색?
- 14. 너비 우선 탐색 및 수명
- 15. MobileMedia 너비 문제를 문의합니다.
- 16. 내 메모리 문제를 관리하는 방법
- 17. 메모리 문제를 다루는 방법 - MATLAB
- 18. 메모리 할당 문제를 디버깅하는 방법?
- 19. 메모리 부족 문제를 디버그하는 방법
- 20. 행 바운드에서 열과 행 값을 읽는 방법
- 21. 읽기 메모리 장벽과 휘발성을 이해하는 방법
- 22. Java에서이 NetBeans 메모리 프로파일 세션을 이해하는 방법 (가시 메모리 누수)?
- 23. 이것은 너비 우선 검색 알고리즘입니까?
- 24. 이진 트리 너비 우선 검색
- 25. 너비 우선 탐색 잘못 출력
- 26. 이것을 더 최적화하는 방법 (속도 우선, 메모리 우선)
- 27. learnpython.org의 "Functions"섹션에서 문제를 이해하는 함수가 반환됩니다.
- 28. 광범위한 첫 번째 검색의 메모리 사용 최소화
- 29. Neo4j 너비 우선 검색이 너무 느립니다.
- 30. "ABA"문제를 이해하는 데 도움이 필요합니다.
정말 멋집니다! – user3034556