열심히 살아나갈 사람
article thumbnail
이진 검색 (Binary Search)
Java/검색 알고리즘 2023. 3. 28. 20:54

이진 검색(Binary Search)은 정렬된 배열에서 특정 값을 찾는 검색 알고리즘 중 가장 효율적인 알고리즘 중 하나입니다. 이진 검색의 동작과정은 다음과 같습니다. 배열의 중간 요소를 선택합니다. 중간 요소의 값과 검색할 값의 크기를 비교합니다. 검색할 값이 중간 요소보다 작으면 중간 요소의 왼쪽 부분 배열에서 검색을 수행합니다. 검색할 값이 중간 요소보다 크면 중간 요소의 오른쪽 부분 배열에서 검색을 수행합니다. 검색할 값이 중간 요소와 일치하면 검색을 종료합니다. 아래는 이진 검색의 동작 과정을 나타낸 그림입니다. 이진 검색의 시간 복잡도는 검색할 배열의 크기가 n일 때, 최악의 경우에는 log2(n) 번의 비교를 수행하므로 O(log n)입니다. 따라서, 이진 검색은 큰 배열에서도 효율적으로 ..

article thumbnail
선형 검색 (Linear Search)
Java/검색 알고리즘 2023. 3. 28. 20:14

선형 검색(Linear Search)은 배열에서 특정 값을 찾는 검색 알고리즘 중 가장 간단한 알고리즘입니다. 선형 검색의 동작과정은 다음과 같습니다. 배열의 첫 번째 요소부터 마지막 요소까지 차례대로 검색할 값을 비교합니다. 검색할 값과 현재 요소의 값이 일치하면 검색을 종료합니다. 배열 전체를 검색하였음에도 일치하는 값이 없다면 검색 실패를 반환합니다. 아래는 선형 검색의 동작 과정을 나타낸 그림입니다. 선형 검색의 시간 복잡도는 최악의 경우에는 배열의 크기 n만큼 모든 요소를 순회해야 하므로 O(n)입니다. 따라서, 선형 검색은 작은 배열에서는 효율적일 수 있지만, 큰 배열에서는 다른 검색 알고리즘들에 비해 느릴 수 있습니다.

검색 알고리즘
Java/검색 알고리즘 2023. 3. 28. 20:08

검색 알고리즘은 데이터 집합에서 특정한 값을 찾는 알고리즘입니다. 데이터베이스, 웹 검색, 게임에서의 적 위치 추적 등 다양한 분야에서 활용됩니다. 검색 알고리즘에는 선형 검색(Linear Search), 이진 검색(Binary Search), 해시 검색(Hash Search) 등이 있습니다. 각 검색 알고리즘은 데이터의 구성과 크기, 검색할 값의 위치 등에 따라 성능이 달라질 수 있습니다. 따라서 검색할 데이터의 특성에 따라 적합한 알고리즘을 선택해야 합니다. 이진 검색은 정렬된 리스트에서 빠르게 검색할 수 있으며, 선형 검색은 정렬되지 않은 리스트에서 검색할 때 유용합니다. 해시 검색은 검색 속도가 매우 빠르지만, 충돌이 발생하는 경우 해결하는 방법이 필요합니다.