Notice
Recent Posts
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 설치
- 필터체인
- 알고리즘
- 오라클
- 깃허브 간단요약
- html
- springboot
- 폼태그
- SESSION
- jquery
- 셋업
- Spring
- 설정
- 자바스크립트
- 면접
- MySQL
- jstl
- jsp 내부객체
- 제이쿼리
- 스프링
- 마이바티스
- 버튼
- 자바
- jsp
- 이클립스
- 깃허브
- java
- Eclipse
- EL태그
- Oracle
Archives
- Today
- Total
은은하게 코드 뿌시기
알고리즘 - 탐색 (DFS/BFS/이진탐색/그리디) 본문
728x90
- 탐색
- 탐색종류
- DFS, 깊이우선탐색
- BFS, 너비우선탐색
- 이진탐색, 바이너리서치
- 그리디 알고리즘, 탐욕법
- DFS (Depth First Search) : 깊이 우선 탐색
- (노드수V+에지수E),
- 그래프 완전 탐색기법- 단절점,단절선,사이클,위상정렬 등
- 시작 노드에서 출발해서 한쪽분기를 정하여 최대 깊이까지 탐색을 마친후에 다른쪽 분기로 이동하여 다시탐색을 수행하는 알고리즘 입니다.
- 구현방식
- 재귀함수/ Stack(FILO)자료구조이용
- 인접리스트(=그래프) , 노드방문여부배열
- 1 꺼내서 인접리스트확인
- 꺼낸 인접리스트 (방문하지않았을경우!) 스택넣기 , 1방문배열체크
- 다녀간 노드없을때까지 방문!
- BFS (Breadth First Search) : 너비 우선 탐색
- (노드수V+에지수E)
- 그래프를 완전 탐색
- 시작노드에서 가까운 노드를 먼저 방문하면서 탐색
- 목표노드에 도착하는 경로가 여러개일떄 최단경로 보장
- 구현방식
- Queue(FIFO)자료구조이용
- 인접리스트, 노드방문여부 배열
- 첫번째 노드에 값을 배열 체크 하고 큐에 등록, 1번 방문배열에체크
- 1번노드의 인접 리스트를 (방문 하지않은 노드라면 )큐에 등록된 노드를 등록,(뒤에 쌓임) 방문배열에 체크
- 다녀간 노드 없을까지 방문
- 이진탐색 : 바이너리 서치
- logN
- 타깃 데이터를 탐색 , 중앙값 비교를 통한 대상 축소방식
- 데이터가 정렬되있는 상태에서 원하는 찾아내는 알고리즘
- 데이터의 중앙값과 찾고자하는 값을 비교해서 절반씩 줄이면서 대상을 찾음.
- 구현방법
- (오름차순기준)
- 현재데이터에서 중앙값을 선택함
- 타겟 데이터와 중앙값을 비교하여 , 값이 속하지 않는 부분은 검색을 하지않는다.
- 반복
- 그리디 알고리즘 : 탐욕법
- 현재상테에서 보는 현택지중 최선의 선택지가 전체 선택지중 최선의 선택지라고 가정하는 알고리즘
- 항상 최적의 값을 보장하지 않음.
- 구현방법
- 현재상태에서 가장 최선이라 생각되는 값을 선택
- 현재 선택된 값이 제약조건에 벗어나지 않는 지 검사
- 전체 문제 에 답인지 검사 아니면 다시검사.
- 답나올때 까지 검사.
- 탐색종류
728x90
'알고리즘' 카테고리의 다른 글
알고리즘 - 그래프 (0) | 2022.10.01 |
---|---|
알고리즘 - 정수론 (0) | 2022.10.01 |
알고리즘 - 정렬 (버블/선택/삽입/퀵/병합/기수) (0) | 2022.10.01 |
알고리즘 - 자료구조 (배열/리스트/스택/큐) (0) | 2022.10.01 |
알고리즘 - 시간복잡도 (0) | 2022.09.29 |
Comments