C#二分法查找搜索数组的代码

702 阅读1分钟
在工作过程中,将开发过程比较常用的一些内容段做个收藏,下面内容段是关于C#二分法查找搜索数组的内容,应该是对各位朋友有所好处。 

using System;
 
class ArrayBinarySearch
{
   public static void Main()
   {
      int[] ints = {0, 10, 100, 1000, 1000000 };
      Console.WriteLine ("Array indices and elements: ");
      for (int i = 0; i < ints.Length; i++ )
      {
         Console.Write("[{0}]={1, -5}", i, ints[i]);
      }
      Console.WriteLine();
      FindObject  (ints, 25);
      FindObject  (ints, 1000);
      FindObject  (ints, 2000000);
   }
   
   public static void FindObject  (Array array, Object o)
   {
      int index = Array.BinarySearch (array, 0, array.Length, o);
      Console.WriteLine();
      if (index > 0 )
      {
         Console.WriteLine ("Object: {0} found at [{1}]", o, index );
      }
      else if (~index == array.Length )
      {
         Console.WriteLine ("Object: {0} not found. " 
            + "No array object has a greater value." , o);
         Console.WriteLine ();
      }
      else
      {
        Console.WriteLine ("Object: {0} not found. " 
           + "Next larger object found at [{1}].", o, ~index);
      }
   }
}