using System;
namespace BinarySearch
{
class Program
{
public static void Main()
{
int[] array = new int[10] { 13, 16, 17, 18, 2, 4, 7, 8, 9, 11 };
Array.Sort(array);
Console.WriteLine("Enter Search
element");
string readLine = Console.ReadLine();
int SearchKey = Int32.Parse(readLine);
int low = 0;
int high = array.Length - 1;
while (low <= high)
{
int midPos = (low + high) / 2;
if (SearchKey < array[midPos])
high = midPos - 1;
else if (SearchKey > array[midPos])
low = midPos + 1;
else if (SearchKey == array[midPos])
{
Console.WriteLine("Search
successful");
Console.WriteLine("Element {0}
found at location {1}\n",
SearchKey, midPos + 1);
return;
}
}
Console.WriteLine("Search
Unsuccessful");
}
}
}
Recursive Ways
public static object BinarySearchRecursive(int[] inputArray,
Recursive Ways
public static object BinarySearchRecursive(int[] inputArray,
int SearchKey, int min, int max)
{
if (min > max)
{
return "Nil";
}
else
{
int midPos = (min + max) / 2;
if (SearchKey == inputArray[mid])
{
return ++midPos;
}
else if (SearchKey < inputArray[midPos])
{
return
BinarySearchRecursive(inputArray, SearchKey, min, midPos - 1);
}
else
{
return
BinarySearchRecursive(inputArray, SearchKey, midPos + 1, max);
}
}
}
No comments:
Post a Comment