Gear.Turbo

C#二分查找

二分递归查找,很简单,就不注释了:  )
using System;
class BinarySearch
{
    
public int search(int[] A, int p, int q, int key)
    
{
        
int result = -1;
        
if (p >= q && key == A[p])
        
{
                   result 
= p;
        }

        
else
        
{
            
int k = (p+q)/2;
            
if (key == A[k]) 
                   result 
= k;
            
else 
                result 
= (key < A[k]) ? search(A, p, k-1, key) : search(A, k+1, q, key);
        }

        
return result;
    }

}

class Program
{
    
public static void Main()
    
{
        Random rnd 
= new Random();
        
int[] data = new int[10];
        
for (int i=0; i<10; i++)
        
{
            data[i] 
= i;
            Console.Write(
"{0}\t",data[i]);
        }

        Console.WriteLine();
        BinarySearch s 
= new BinarySearch();
        
int t = s.search(data, 095);
        Console.Write(t);
    }

}

posted on 2007-01-11 17:40  lsp  阅读(2226)  评论(6)    收藏  举报

导航