반응형

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 = 0end = 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);
}

 

 

 

반응형