반응형
c언어 순차 탐색 (Linear Search) - 단어 배열에서 특정 문자의 포함 여부 및 위치 찾기
단어에서 문자의 위치 찾기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /* Linear search */ #include <stdio.h> int linearSearch(char ch, int n, char word[]) { int result = -1; for (int i = 0; i < n; i++) { if (word[i] == ch) result = i; } return result; } int main() { char a[6] = "orange"; int result = linearSearch('a', 6, a); printf("result: %d\n", result); } |
발견시 즉시 결과 반환
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /* Speed up linear search */ #include <stdio.h> int linearSearch(char ch, int n, char word[]) { for (int i = 0; i < n; i++) { if (word[i] == ch) return i; } return -1; } int main() { char a[6] = "orange"; int result = linearSearch('a', 6, a); printf("result: %d\n", result); } |
복잡성 최소화 - boolean 활용
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <stdio.h> #include <stdbool.h> int linearSearch(char ch, int n, char a[]) { int result = -1; bool found = false; for (int i = 0; i < n && ! found; i++) { if (a[i] == ch) { result = i; found = true; } } return result; } int main() { char a[6] = "orange"; int result = linearSearch('a', 6, a); printf("result: %d\n", result); } |
반응형
'C 언어 > C언어 기초' 카테고리의 다른 글
[C언어 #54] 메모리 (Memory) - 배열 재할당 (realloc) (0) | 2020.07.30 |
---|---|
[C언어 #53] 이진 탐색 (Binary Search) - 특정 문자 포함 여부 찾기 (0) | 2020.07.20 |
[C언어 #51] 파일 입출력 (IO) - 콤마 쉼표 구분해서 문자열 읽기 (0) | 2020.07.17 |
[C언어 #50] 파일 입출력 (IO) - 문자열 숫자 (line) 전화번호부 읽기 (0) | 2020.07.17 |
[C언어 #49] 파일 입출력 (IO) - 텍스트 파일 한줄씩 (line) 읽기 (0) | 2020.07.17 |