250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- EMR
- redash
- Redis
- 설정
- 머신러닝
- Jenkins
- SpringBoot
- 자바
- fastcampus
- 클러스터
- 간단
- ec2
- hive
- Docker
- Zeppelin
- Cluster
- Mac
- java
- login
- 로그인
- spring
- 자동
- gradle
- 레디스
- 젠킨스
- config
- vue
- Kafka
- 예제
- aws
Archives
- Today
- Total
코알못
[코테] 순차/이진 탐색과 그래프 이해 본문
728x90
순차 탐색 [시간 복잡도 : O(N)]
- 순차적으로 탐색하는 알고리즘
public static boolean sequentialSearch(List<Integer> arr, int findData){
for (int a : arr){
if(a == findData){
return true;
}
}
return false;
}
이진 탐색 [시간 복잡도 : O(logN)]
- 정렬된 리스트에서 검색 범위를 줄어가며 탐색하는 알고리즘
public static boolean binarySearch(List<Integer> arr, int findData){
if(arr.size() == 1){
if(arr.get(0) == findData){
return true;
}
return false;
}
int middleData = arr.size()/2;
if(arr.get(middleData) == findData){
return true;
}
if(arr.get(middleData) > findData){
return binarySearch(new ArrayList<>(arr.subList(0, middleData)), findData);
}
return binarySearch(new ArrayList<>(arr.subList(middleData, arr.size())), findData);
}
- 참고 : https://blog.penjee.com/binary-vs-linear-search-animated-gifs/
그래프 이해
- A, B, C 는 각각 Node(또는 Vertex) 이다.
- 각각의 노드를 이어주는선은 Edge 이다.
- 인접 Vertex : Edge 로 연결된 인접한 노드 (C의 인접 Vertex는 B)
- Edge 가 화살표가 있다면 방향 그래프, 아래 이미지와 같이 화살표가 없다면 무방향 그래프
- 단순 경로 : 한번 다녀간 Node는 방문하지 않는 경로(예 : C > B > A / C > B > A > B > C 는 단순 경로가 아니다)
- 가중치 그래프 : Edge 에 가중치(숫자)가 부여된 그래프
- 연결 그래프 vs 비연결 그래프 : 모든 노드가 연결되어 있다면 연결 그래프, 연결 안된 노드가 하나라도 있다면 비연결 그래프
- 차수 : 노드의 인접한 노드수
728x90
'ETC' 카테고리의 다른 글
[Docker] 도커 허브를 통한 이미지 관리 (0) | 2022.11.25 |
---|---|
[Docker] 이미지 생성/불러오기 (0) | 2022.11.25 |
[코테] 간단하게 정리된 코테 - 환경 셋팅 (Java, Jupyter 설치) (0) | 2022.10.02 |
[코테] 간단하게 정리된 코테 - 정렬 (0) | 2022.09.29 |
[Shell] scp/ssh 명령어 no/yes 문구 비활성화 (배치 등록시 필요) (0) | 2022.07.16 |
Comments