본문 바로가기

알고리즘 && 자료구조13

[java] 직접 구현해보는 큐 public class IntQueue { private int max; //큐 용량 private int front; //첫번째 요소 커서 private int rear; //마지막 요소 커서 private int num; // 현재 데이터수 private int[] que; // 본체 public class EmptyIntQueueException extends RuntimeException { public EmptyIntQueueException() { System.out.println("큐가 비어있습니다."); } } public class OverflowIntQueueException extends RuntimeException { public OverflowIntQueueException() .. 2021. 3. 21.
Disjoint Set(서로수 집합) Disjoint Set : 디스조인트 셋 ? 서로수집합은 한개의 집합으로는 성립되지 않고 집합이 여러개있을때 서로서로 공통적인 원소가 없어 모든 집합의 교집합은 공집합( Φ )이 된다는 말이다. 서로수 집합도 집합이니 집합 연산이 필요한데 서로수집합은 서로 공통원소가 없으니 차집합, 교집합은 의미가 없다. 차집합 교집합을 해봤자 다 공집합이기 때문이다. 따라서 합집합만 있으면 될것 같은데 서로수집합에서 합집합을 찾는 것을 disjoint set - 유니온(Union) 이라 하고 각 원소에가 트리의 어떤 루트노드에 연결되어 있는지 그 루트를 찾는 연산을 disjoint set - 파인드(Find) 라 부른다. 초기에 각 노드는 자기 자신을 루트 노드로 가진다. for(int i = 1; i 2020. 7. 29.
브루트 -포스법 설명 나무위키 " Brute force 조합 가능한 모든 문자열을 하나씩 대입해 보는 방식으로 암호를 해독하는 방법. 브루트 포스 공격(brute force attack) 또는 키 전수조사(exhaustive key search), 무차별 대입 공격(無差別代入攻擊) 등으로도 부른다. 흔히 수학 문제를 원시적으로 푸는 방법인 '수 대입 노가다'의 학술적 버전이다. 주로 암호학에서 연구되는 방법이나, 다른 알고리즘 분야에서도 사용되고 있다. " 이미 검사를 진행한 위치를 기억하지 못하므로 부르트-포스법의 효율은 좋지 않다고 할 수 있다! 예제 package 문자열검색; import java.util.Scanner; public class P8_1 { static int bfMatch(String txt , .. 2020. 7. 28.
[스터디] 검색 알고리즘 데이터 집합이 존재할때 '검색만 하면 되지!' 라고 생각한다면 검색에 사용할 알고리즘은 계산 시간이 짧은 것을 선택하면 됩니다. 하지만 데이터 집합에 대한 검색뿐만 아니라 데이터의 추가 , 삭제 등을 자주하는 경우라면 검색 이외의 작업에 소요되는 비용을 종합적으로 평가하여 알고리즘을 선택 해야 합니다. 선형 검색 배열에서의 검색은 원하는 키 값을 갖는 요소를 만날 때까지 맨 앞부터 순서대로 요소를 검색하는 알고리즘 입니다. 이진 검색 이진검색은 선형 검색보다 훨씬 빠른속도로 검색을 할 수 있습니다. 이 알고리즘을 사용하기 위해서는 전제 조건이 있습니다. - 오름차순 또는 내림차순으로 정렬된 데이터 여러분들은 영어사전을 검색할때 어떤식으로 찾나요? 1. 사전 처음부터 y라는 단어가 나올때까지 찾는다. 2... 2020. 7. 14.