목록알고리즘 (2)
생각하는 감쟈
이분 탐색 - 오름차순으로 정렬된 배열을 반복적으로 반으로 나누어 target이 선택될 떄 까지 탐색하는 알고리즘 - 조건 : 반드시 오름차순으로 정렬된 상태에서 시작해야 한다 Olog(N) 반복문과 재귀 두 가지 방법을 사용할 수 있다 target : 찾고자 하는 값 data : 오름차순으로 정렬된 list start : data의 처음값 인덱스 end : data의 마지막 값 인덱스 mid : start, end 의 중간 인덱스 자료의 중갑 값(Mid) 차고자 하는 값인지 겁사 아니라며면 대소 관계를 비교하는 start, end 값 이동 동일 연산 반복 (재귀로 구현 가능) 자료의 중간 값이 찾고자 하는 값인지 비교 mid값이 target과 다트라면 대소관계를 비교하여 탐색 범위를 좁히고, tqrge..
백트래킹 - 해를 찾는 도중 막히면 더 이상 깊이 들어가지 않고, 이전 단계로 되돌아가서 해를 찾아나가는 방법 - 최적화 문제와 결정 문제를 푸는 방법 - DFS 등으로 모든 경우의 수를 탐색하는 과정에서 조건문 등을 걸어 답이 될 수 없는 상황을 정의하고, 그러한 상황일 경우에는 탐색을 중지시킨 뒤 그 이전으로 돌아가서 다시 다른 경우를 탐색하게 끔 구현가능 백 트래킹 vs DFS 백 트래킹 - 불필요한 탐색을 하지 않음 DFS - 모든 경우의 수를 탐색 빅오 표기법 - 런타임과 메모리 사용을 최소화 방법 O(1) constant time : for문 없이 바로 O(log n) log time : 이중 탐색 O(n) linear time : for문 O(n log n) log linear time : ..