二分法java c# VB.NET

 JAVA二分法

 1 public int Found(int a[], int r) {
 2    int start, end, middle, rs;
 3    start = 0;
 4    end = a.length;
 5    rs = r;
 6 
 7    while (start < end) {
 8 
 9     middle = (start + end) / 2;
10    
11     if (rs == a[middle]) {
12      return middle;
13     }
14     if (rs < a[middle]) {
15      end = middle-1;
16     
17     }
18     if (rs > a[middle]) {
19      start = middle+1;
20     }
21    }
22    return -1;
23 
24 }

 C#二分法

代码
 1     public int Found(int[] a, int r)
 2     {
 3         int start, end, middle, rs;
 4         start = 0;
 5         end = a.length;
 6         rs = r;
 7         while (start < end)
 8         {
 9             middle = (start + end) / 2;
10             if (rs == a[middle])
11             {
12                 return middle;
13             }
14             if (rs < a[middle])
15             {
16                 end = middle - 1;
17             }
18             if (rs > a[middle])
19             {
20                 start = middle + 1;
21             }
22         }
23         return -1;
24     }

 

VB.NET

代码
 1     Public Function Found(ByVal a As Integer(), ByVal r As Integer) As Integer
 2         Dim start As Integer, [end] As Integer, middle As Integer, rs As Integer
 3         start = 0
 4         [end] = a.length
 5         rs = r
 6         While start < [end]
 7             middle = (start + [end]) \ 2
 8             If rs = a(middle) Then
 9                 Return middle
10             End If
11             If rs < a(middle) Then
12                 [end] = middle - 1
13             End If
14             If rs > a(middle) Then
15                 start = middle + 1
16             End If
17         End While
18         Return -1
19     End Function
 
posted @ 2010-12-08 22:00  X-Jonney  阅读(484)  评论(0)    收藏  举报