250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 일정
- JAVA #언어 #프로그래밍 #코딩 #static #정적함수 #정적변수 #클래스
- 영국
- 파이썬
- IT
- 내심정
- 여행
- 유럽여행
- 예약
- 리눅스
- #DB#SQLD#자격증
- 샐러리
- 이탈리아
- 배낭여행
- ip
- 계획
- 실비용
- 메시지 큐
- JAVA #객체지향 #프로그래밍 #언어 #IT #기초
- 서버
- 1달살기
- JAVA #언어 #프로그래밍 #IT #개발 #코딩
- 유럽
- 여행 #
- RabbitMQ
- 인프라
- 추억
- 경험
- 겨울
- 준비
Archives
- Today
- Total
YoonWould!!
Binary Search 구현 본문
728x90
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | #include <stdio.h> // 이진 탐색 알고리즘 반복문 구현 // 찾는 숫자가 있으면 찾는 숫자의 인덱스 리턴 없으면 -1 리턴 int BSearch(int ar[], int len, int target) { int first = 0; int last = len - 1; int mid = 0; // first와 last가 같은 경우까지 반복하는 이유 // while(first < last)이면 마지막 하나가 남았을때 // 검사하지 않고 종료되기 때문이다. while (first <= last) { mid = (first + last) / 2; if (ar[mid] == target) { return mid; } else { if (ar[mid] > target) last = mid - 1; else first = mid + 1; } } return -1; } // 이진 탐색 알고리즘 재귀 구현 int BSearchRecur(int ar[], int first, int last, int target) { int mid = (first + last) / 2; if (first > last) return -1; else { if (ar[mid] == target) return mid; else { if (ar[mid] > target) { last = mid - 1; BSearchRecur(ar, first, last, target); } else { first = mid + 1; BSearchRecur(ar, first, last, target); } } } } int main(int arc, char** argv) { int arr[] = { 1, 2, 3, 7, 9, 12, 21, 23, 27 }; int idx = 0, inputNum = 0; scanf_s("%d", &inputNum); idx = BSearch(arr, sizeof(arr) / sizeof(int), inputNum); if (idx == -1) { printf("Fail\n"); } else { printf("Target Index : %d\n", idx); } idx = BSearchRecur(arr, 0, sizeof(arr) / sizeof(int) - 1, inputNum); if (idx == -1) { printf("Fail\n"); } else { printf("Target Index : %d\n", idx); } } | cs |
728x90
'<SW> > 알고리즘 + 자료구조' 카테고리의 다른 글
[BFS]2178번 미로탐색 (0) | 2018.08.11 |
---|---|
1260번 DFS와 BFS (0) | 2018.03.28 |
Sequential Search 구현 (0) | 2018.03.28 |
[자료구조]배열과 링크드리스트 (0) | 2018.03.24 |
14889번 스타트와 링크 (0) | 2018.03.24 |