Csharp/C Sharp/Collections Data Structure/Search

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

Uses a recursive method to implement binary search

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);
  }
}