이진탐색 2

Sequential Search vs Binary Search ( 순차 탐색 vs 이진 탐색)

순차 탐색(sequential search) 혹은 선형 탐색(linear search)라고도 하는 탐색에 대해 알아봅시다. 순차 탐색은 말 그대로 앞에서부터 순차적으로 데이터를 찾는 탐색 방법입니다.  코드)#include #include int SequentialSearch(std::vector v, int target) { int N = v.size(); for (int i = 0; i v1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; std::cout  이렇게, 앞에서부터 하나씩 찾아야 하는 값과 비교하며 나아갑니다.찾는 값을 찾은 경우, 바로 그 위치를 반환합니다.   이번에는, 이진 탐색에 대해 알아보겠습니다.이진 탐색이란, 데이터를 두 조각으로 나누어서 탐색하는 것입니..

BinarySearch (이진탐색)

이진 탐색이란, 정렬되어있는 데이터가 주어졌을 떄 사용 가능한 정렬 방식입니다. 이러한 배열이 주어졌을 때, 7이라는 숫자를 이진 탐색으로 찾는 과정을 살펴봅시다.가장 첫번쨰 인덱스 (0번) 과 가장 마지막 인덱스(9번)의 평균 4 ((0+9)/2) 번 인덱스를 봅니다. 찾고자하는 7은 5보다 크기 때문에, 왼쪽 절반을 다 탐색 범위에서 없앱니다.  그리고, 새로운 탐색 범위의 중간값을 살펴봅니다.7은 8보다 작기 때문에 8을 기준으로 오른쪽 부분도 없앱니다.또, 새로운 범위의 중간값을 봅니다.6보다 7이 더 크기 때문에 6을 탐색범위에서 없앱니다.이제, 탐색이 끝났습니다. 만약 찾을 수 없는 숫자를 탐색하고자 한다면, 위와 같이 숫자가 1개 남아도 탐색이 완료되지 않겠죠.  이것까지 고려해서 코드를 짜..

DataStructure 2024.06.25