Algorithms/Binary Search
-
[이진 탐색] 정렬된 배열에서 특정 수의 개수 구하기 ★★☆Algorithms/Binary Search 2021. 3. 5. 18:06
기출 : Zoho 인터뷰 C++ STL의 upper_bound, lower_bound의 개념에 대해 새로 알았다 직접 작성한 코드와 STL을 사용한 코드 모두 올렸다 #include using namespace std; int n, x, ans; vector v; int lowerbound(int st, int en, int target) { if (st > en) return -1; int mid = (st + en) / 2; if ((mid == 0 || v[mid - 1] = target) lowerbound(st, mid-1, target); else lowerbound(mid+1, en, targe..
-
[이진 탐색 알고리즘] 문제풀이 전략Algorithms/Binary Search 2021. 2. 14. 18:25
이진 탐색이란 찾으려는 데이터를 시작점과 끝점 사이의 중간점과 비교해서 원하는 데이터를 찾는 알고리즘이다 이 탐색 방법은 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있다 한 번 확인할 때마다 데이터가 반으로 줄어든다는 점에서 연산 횟수는 log(2)N에 비례하고 이는 O(logN)이다 이진 탐색은 재귀를 사용하는 방법과 반복문을 사용하는 방법이 있다 다음은 두 방법을 구현한 것이다 #include using namespace std; int recur_binary_search(int st, int en, int val); int iter_binary_search(int st, int en, int val); int arr[10] = {0,11,15,25,41,56,99,101,324,400}; i..