Csharp/C Sharp/Collections Data Structure/Search

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Uses a recursive method to implement binary search

<source lang="csharp"> using System; public class BinarySearch {

 public static int Search (int[] data, int key, int left, int right) {
   if (left <= right) { 
     int middle = (left + right)/2;       
     if (key == data[middle])
       return middle;
     else if (key < data[middle])
       return Search(data,key,left,middle-1);
     else 
       return Search(data,key,middle+1,right);
   }
   return -1;   
 }
 public static void Main(String[] args) {
   int key;       // the search key
   int index;     // the index returned
   int[] data = new int[10];
   
   for(int i = 0; i < data.Length; i++)
     data[i] = i;
   
   key = 9;
   index = Search(data, key, 0, data.Length-1);
   if (index == -1)
     Console.WriteLine("Key {0} not found", key);
   else
     Console.WriteLine ("Key {0} found at index {1}", key, index);
 }

}

      </source>