반응형
c언어 이진탐색 (Binary search) - 특정 문자 포함 여부 찾기
문자열 내의 문자가 정렬되어있다는 가정하에 실행
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | /* Binary search */ #include <stdio.h> #include <stdbool.h> int search(char ch, int n, char a[n]) { int start = 0, end = n, mid; bool found = false; while (!found && end > start) { mid = start + (end-start)/2; if (ch == a[mid]) found = true; else if (ch < a[mid]) end = mid; else start = mid + 1; } return found ? mid : -1; } int main() { char a[14] = "abcdejghijklmn"; int result = search('l', 14, a); printf("result: %d\n", result); } |
반응형
'C 언어 > C언어 기초' 카테고리의 다른 글
[C언어 #55] 리스트 (list) - 동적배열 (배열 길이 활용) (0) | 2020.07.30 |
---|---|
[C언어 #54] 메모리 (Memory) - 배열 재할당 (realloc) (0) | 2020.07.30 |
[C언어 #52] 순차 탐색 (Linear Search) - 특정 문자 포함 여부 찾기 (0) | 2020.07.20 |
[C언어 #51] 파일 입출력 (IO) - 콤마 쉼표 구분해서 문자열 읽기 (0) | 2020.07.17 |
[C언어 #50] 파일 입출력 (IO) - 문자열 숫자 (line) 전화번호부 읽기 (0) | 2020.07.17 |