using System;
public class Test
{
public static int Bsearch(int[] m, int left, int right, int item)
{
if (left > right)
return -1;
int found = left + (right - left) / 2;
if (m[found] > item)
return Bsearch(m, left, found - 1, item);
else if (m[found] < item)
return Bsearch(m, found + 1, right, item);
else
return m[found];
}
public static void Main()
{
int[] massive = new int[20];
for (int i = 0; i<massive.Length; i++)
{
massive[i] = i;
}
int result = Bsearch(massive, 0, massive.Length - 1, -2);
Console.WriteLine("{0} has found", result);
result = Bsearch(massive, 0, massive.Length - 1, 3);
Console.WriteLine("{0} has found", result);
result = Bsearch(massive, 0, massive.Length - 1, 30);
Console.WriteLine("{0} has found", result);
Console.ReadKey();
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJCiAgICBwdWJsaWMgc3RhdGljIGludCBCc2VhcmNoKGludFtdIG0sIGludCBsZWZ0LCBpbnQgcmlnaHQsIGludCBpdGVtKQogICAgewogICAgICAgaWYgKGxlZnQgPiByaWdodCkKICAgICAgICAgICByZXR1cm4gLTE7IAogICAgICAgIGludCBmb3VuZCA9IGxlZnQgKyAocmlnaHQgLSBsZWZ0KSAvIDI7CiAgICAgICAgaWYgKG1bZm91bmRdID4gaXRlbSkgCiAgICAgICAgICAgIHJldHVybiBCc2VhcmNoKG0sIGxlZnQsIGZvdW5kIC0gMSwgaXRlbSk7CiAgICAgICAgZWxzZSBpZiAobVtmb3VuZF0gPCBpdGVtKSAKICAgICAgICAgICAgcmV0dXJuIEJzZWFyY2gobSwgZm91bmQgKyAxLCByaWdodCwgaXRlbSk7CiAgICAgICAgZWxzZSAKICAgICAgICAgICAgcmV0dXJuIG1bZm91bmRdOwogICAgfSAgICAKICAgICAgICAKcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQp7CiAgaW50W10gbWFzc2l2ZSA9IG5ldyBpbnRbMjBdOwogIGZvciAoaW50IGkgPSAwOyBpPG1hc3NpdmUuTGVuZ3RoOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBtYXNzaXZlW2ldID0gaTsKICAgICAgICB9CiAgICAgICAgaW50IHJlc3VsdCA9IEJzZWFyY2gobWFzc2l2ZSwgMCwgbWFzc2l2ZS5MZW5ndGggLSAxLCAtMik7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoInswfSBoYXMgZm91bmQiLCByZXN1bHQpOwogICAgICAgIHJlc3VsdCA9IEJzZWFyY2gobWFzc2l2ZSwgMCwgbWFzc2l2ZS5MZW5ndGggLSAxLCAzKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiezB9IGhhcyBmb3VuZCIsIHJlc3VsdCk7CiAgICAgICAgcmVzdWx0ID0gQnNlYXJjaChtYXNzaXZlLCAwLCBtYXNzaXZlLkxlbmd0aCAtIDEsIDMwKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiezB9IGhhcyBmb3VuZCIsIHJlc3VsdCk7CiAgICAgICAgQ29uc29sZS5SZWFkS2V5KCk7CiAgICAgICAgCgl9Cn0=