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