2분 찾기 귀속 실현, 비귀속 실현

1639 단어 매일
2분 찾기 비귀속 실현
한 구간은 왼쪽으로 닫고 오른쪽으로 닫는다.
#include
#include
int BinarySerach(int *arr, int x, int sz)
{
	int left = 0;
	int right = sz - 1;// 
	
	while (left <= right)// 
	{
		int mid = left + (right - left) / 2;
		while(arr[mid] == x)
		{
			return mid;
		}
		if (arr[mid]>x)
		{
			right = mid - 1;// mid-1
		}
		
		if (arr[mid]

2구간 좌폐우개
#include
#include
int BinarySerach(int *arr, int x, int sz)
{
	int left = 0;
	int right = sz;// 
	while (left < right)// 
	{
		int mid = left + (right - left) / 2;
		if (arr[mid] == x)
		{
			return mid;
		}
	
	if (arr[mid]>x)
	{
		right = mid ;// mid-1
	}

	if (arr[mid]

2분 찾기 귀속 실현
#include
#include
int BinarySerachR(int *arr, int x, int left, int right)
{
	while (left <= right)

	{
		int mid = (right - left) / 2 + left;
		if (arr[mid] == x)
			return mid;
		if (arr[mid] > x)
		{
			return BinarySerachR(arr, x, left, mid - 1);
		}
		else
		{
			return BinarySerachR(arr, x, mid + 1, right);
		}
	}
	return -1;
}
int main()
{
	int arr[10] = { 1, 3, 5, 6, 7, 9, 11, 12, 14, 48 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	int ret=BinarySerachR(arr, 50, 0, sz);
	printf("%d
", ret); system("pause"); return 0; }

좋은 웹페이지 즐겨찾기