알고리즘 - 순차검색

김혜진·2022년 9월 8일
0

알고리즘

목록 보기
2/13

순차검색


주어진 배열에서 key값이 75인 값을 검색하는 알고리즘을 작성하라.
단, 검색 알고리즘을 함수로 작성하라.
값을 찾았다면 "찾는 값은 ?번째에 있습니다."라고 출력하고, 찾는 값이 없다면 "값을 찾을 수 없습니다."라고 출력하라.

int arr[]={23,47,19,63,57,26,75,73,82,89,47,11};
key=75;


내 코드

#include<stdio.h>

int Search(int* arr, int size);

int main()
{
	int arr[] = { 23,47,19,63,57,26,75,73,82,89,47,11 };
	int size = sizeof(arr) / sizeof(arr[0]);

	Search(arr, size);
	
	return 0;
}

int Search(int* arr, int size)
{
	for (int i = 0; i < size; i++)
	{
		if (arr[i] == 75)
		{
			printf("찾는 값은 %d번째에 있습니다.", i + 1);
			return 0;
		}
	}

	printf("값을 찾을 수 없습니다.");

	return 0;
}

강사님 코드

#include<stdio.h>

int Search(int* arr, int key, int size);

int main()
{
	int arr[] = { 23,47,19,63,57,26,75,73,82,89,47,11 };
    int size = sizeof(arr) / sizeof(arr[0]);
	int key = 75;

	int ret = Search(arr, key, size);
    if (ret == -1)
    {
    	printf("찾는 값이 없습니다.\n);
    }
    else
    {
    	printf("값은 %d번째에 있습니다.\n", ret + 1);
    }
	
	return 0;
}

int Search(int* arr, int key, int size)
{
	for (int i = 0; i < size; i++)
	{
		if (arr[i] == key)
		{
			return i;
		}
	}
	return -1;
}

외부함수에서 숫자로 return해서 main함수에서 출력하는 방법도 있다는 걸 알았다.

profile
알고 쓰자!

0개의 댓글