Saturday, 14 December 2019

Binary Search In C#


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,
                            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