목록알고리즘 (2)
고코딩
이진탐색 이진 탐색이란 정렬되어 있는 배열에서 원하는 값을 찾아내는 탐색 방법중 하나이다. 이진탐색은 처음부터 찾는 것이 아니라 양 끝에서 부터 시작해 중간값과 찾으려는 값을 비교해서 배열을 2개로 나눠 찾으려는 값이 속한 배열에서 다시 이진탐색을 하는 방법이다. 처음부터 찾는 일반 탐색과 속도측면에서 매우 빠른 방법이다. 가장 주의해야 할 점은 이 탐색은 정렬된 배열에서 써야하는 것이다. 배열에서 찾으려는 값의 인덱스 번호를 리턴해주는 함수이다. 만약에 찾는 값이 없다면 -1을 리턴함 public int binary_search(int item, int[] numbers) { int left=0; int right = numbers.length-1; while(right >= left) { int mi..
브루트 포스(Brute Force) 알고리즘에서의 브루트 포스(Breute Force)에 관한 이야기 이다 공격기법 부르트 포스에 대한 이야기가 아니다. Brute Force Attack Brute : 난폭한 / Force : 힘 두 의미를 합하면 난폭한 힘(?)으로 해석이 된다. 간단히 설명하자면 무식하게 모든 경우의 수를 탐색하면서 요구조건에 충족되는 결과만을 가져온다. 일명 노가다... 이 알고리즘의 가장 큰 특징은 모든 영역을 전체 탐색하는 방법이다. 전체 탐색하는 방법으로는 선형 구조를 전체적으로 탐색하는 순차 탐색, 비선형 구조를 전체적으로 탐색하는 깊이 우선 탐색(DFS), 너비 우선 탐색(BFS) 가 기본적인 도구이다. 어떤 방식으로든 전체 탐색으로 문제를 해결한다면 브루트 포스 알고리즘으..