再帰的なバイナリ検索

#include <iostream>
#include<iomanip>
using namespace std;
int find(int left, int right, int a[],int k)
{
	int mid = (left + right) / 2;
	if (left <= right)
	{
		if (k > a[mid])
		{
			find(mid + 1, right, a, k);
		}
		else if (k < a[mid])
		{
			find(left, mid - 1, a, k);
		}
		else if (k == a[mid])
		{
			return mid;
		}
	}
	else return -1;
}
int main()
{
	int a[] = { 1,2,3,6,7,9,10 };
	cout<<find(0, 6, a, 10);
	system("pause");
}
公開された17元の記事 ウォンの賞賛1 ビュー3434

おすすめ

転載: blog.csdn.net/weixin_43983570/article/details/90546839