Computer science/Algorithm

Sequential Search

잔망루피 2021. 2. 22. 20:16
#include<stdio.h>
#define LEN 5

int sequentialSearch(int* ar, int key) {
    unsigned int i;
    // 자료의 처음부터 끝까지 반복
    for (i = 0; i < LEN; i++) {
        // 숫자가 존재할 경우
        if (ar[i] == key) {
            return i;     // key의 인덱스 반환
        }
    }
    return -1;
}

int main() {
    int tc, key, arr[LEN] = { 0, };     // 테스트 케이스 수, 찾는 숫자, 배열
    scanf_s("%d", &tc);   		// 테스트 케이스 수 입력
    for (int t=0; t < tc; t++) {
        for (int i=0; i < LEN; i++)
            scanf_s("%d", &arr[i]);        // 배열 입력
        scanf_s("%d", &key);              // 찾을 숫자 입력
        int k = sequentialSearch(arr, key);
        printf("%d %d", tc, k);
    }
}

 

찾는 숫자 key가 배열 arr에 있으면 인덱스를 반환한다.

 

정렬되어 있는 배열 arr에서 순차 검색을 할 때는 if(ar[i] > key) break;를 추가하면 된다.

 

반응형

'Computer science > Algorithm' 카테고리의 다른 글

Selection Sort  (0) 2021.02.24
Binary Search  (0) 2021.02.22
Counting Sort  (0) 2021.02.16
Bubble-Sort  (0) 2021.02.16
Heap  (0) 2021.02.04