CS/알고리즘 4

알고리즘 기초 - 경로 탐색 알고리즘

너비 우선 탐색(Breadth-First Search, BFS)그래프를 탐색하는 알고리즘이다. 시작 노드에서 가장 가까운 노드부터 시작하여 모든 노드를 광범위하게 탐색한다. 두 노드 사이에 경로가 있는지 확인하고 그 사이의 최단 경로를 결정한다.너비 우선 탐색 알고리즘은 기본적으로 0층에서 시작하며 다음 층으로 이동하기 전에 해당 층의 모든 노드를 방문할 때까지 수평으로 이동한다.즉, 한 번 거친 노드 순서를 저장한 후 다시 꺼내는 선입선출 원칙으로 탐색한다. 주로 큐를 이용해 구현한다. 루트 노드 1에서 시작하여 값이 7인 노드에 도달하려고 하는 경우, 1에서 가장 가까운 2, 3을 탐색한다.그 다음 2에서 가장 가까운 4, 5, 6, 7을 탐색하여 7에 도달한다. 깊이 우선 탐색(Depth-First..

CS/알고리즘 2024.07.29

알고리즘 기초 - 정렬 알고리즘

정렬이진 탐색은 알고리즘을 수행하기 전에 데이터를 비교하도록 특정 순서로 배열을 정렬한다. 데이터베이스는 쿼리를 실행하여 특정 속성에 따라 배열을 정렬한다.데이터를 정렬하면 알고리즘이 중복 데이터를 빠르게 식별하거나 필요한 데이터를 매우 빠르게 찾을 수 있다.  버블 정렬(Bubble Sort)1. 배열의 왼쪽 끝에 있는 두 요소(숫자)를 확인한다.2. 두 요소를 비교하여 오른쪽이 왼쪽보다 크면 두 요소의 위치를 바꾼다.3. 원래 자리에서 오른쪽으로 한 자리 이동하여 두 요소를 비교한다.4. 두 요소를 비교하여 오른쪽이 왼쪽보다 크면 두 요소의 위치를 바꾼다.반복하여 결국 배열에서 가장 큰 숫자가 배열의 가장 오른쪽으로 이동하면해당 요소는 정렬이 완료된 것으로 간주한다.배열의 요소가 모두 정렬될 때까지 ..

CS/알고리즘 2024.07.23

알고리즘 기초 - 선형 및 이진 탐색

선형 알고리즘(Linear Algorithm)선형 알고리즘의 실행 시간은 요소 개수 증가에 정비례하여 증가하므로 시간 복잡도는 O(n)이다.선형 알고리즘은 데이터쌍(인덱스와 이에 매칭되는 값)을 이용해 선형적으로 요소를 탐색하는 방법이다.선형 탐색은 결과를 얻기 위해 배열의 모든 요소를 살펴봐야하므로 느리다. 선형 탐색은 모든 유형의 데이터에 적용할 수 있지만 비효율적이다. 이진 탐색 알고리즘선형 탐색을 보완하는 로그형 탐색 기술이다. 이진 탐색의 시간 복잡도는 O(logn)이다. 선형 탐색에서 시간 복잡도가 O(1)인 경우를 제외하면 선형 탐색보다 훨씬 효율적이다. 1. 배열의 중간 요소를 찾는다. 2.찾고 있는 숫자보다 작은 숫자를 삭제한다. (중간요소보다 앞에 있는 요소들을 삭제)반복. 이진 탐색은..

CS/알고리즘 2024.07.23

알고리즘 기초

재귀 함수실행 도중 자기 자신을 호출하는 함수.최대 재귀 깊이(Maximum recursion depth)재귀 함수가 자기 자신을 호출 하는 횟수가 늘어날수록 컴퓨터의 가용 메모리 공간은 점점 줄어든다. 컴퓨터의 메모리에는 한계가 있으므로 결국 자기 자신을 호출하는 횟수의 한계인 최대 재귀 깊이를 초과해 스택 오버플로우가 발생할 수 있다. 분할 정복 알고리즘(Divide and Conquer Algorithm)큰 문제를 여러 개의 작은 문제로 나누어 해결하고 결과를 결합해 하나의 해결 방법을 얻는 알고리즘. 탐욕 알고리즘(Greedy Algorithm)실행되는 순간마다 최상의(가장 적합한) 결정을 내리는 알고리즘.단, 매 순간 최선의 결정을 하더라도 결과적으로 전체에 대한 최적의 결정인지는 장담할 수 없..

CS/알고리즘 2024.07.18
반응형