Algorithm/C

C언어 : 이진 탐색(binary search)

Printemp 2021. 10. 25.

저번에 배웠던 선택 정렬을 이용하여 배열을 정렬했다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

#define SIZE 16

void selection_sort(int x[]);
int main()
{
	int ar[SIZE] = { 27,29,22,2,47,45,6,18,41,34,20,42,11,13,38,30 };
	selection_sort(ar);
	int low, mid, high, num, result;
	printf("탐색할 값을 입력하시오: ");
	scanf("%d", &num);
	low = 0, high = SIZE - 1;
	while (low<=high)
	{
		mid = (low + high) / 2;
		if (num == ar[mid])
		{
			result = mid ;
			break;
		}
		else if (num > ar[mid])
			low = mid + 1;
		else if (num < ar[mid])
			high = mid - 1;
	}
	if (result >= 0)
		printf("탐색 성공 인덱스 = %d", result);
	return 0;
}
void selection_sort(int x[])
{
	
	int i, n, min, a, temp;
	for (i = 0; i < SIZE; i++)
	{
		min = x[i];
		a = i;
		for (n = i + 1; n < SIZE; n++)
		{
			if (min > x[n])
			{
				min = x[n];
				a = n;
			}

		}
		temp = x[i];
		x[i] = x[a];
		x[a] = temp;
	}
}

댓글

💲 추천 글