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