forked from txs72/JavaTutorial
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBinarySearch.java
More file actions
executable file
·87 lines (85 loc) · 2.3 KB
/
BinarySearch.java
File metadata and controls
executable file
·87 lines (85 loc) · 2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/* */ package ch19;
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */ class BinarySearch
/* */ {
/* */ public static int binSearch(int[] srcArray, int start, int end, int key) {
/* 27 */ int mid = (end - start) / 2 + start;
/* 28 */ if (srcArray[mid] == key) {
/* 29 */ return mid;
/* */ }
/* 31 */ if (start >= end)
/* 32 */ return -1;
/* 33 */ if (key > srcArray[mid])
/* 34 */ return binSearch(srcArray, mid + 1, end, key);
/* 35 */ if (key < srcArray[mid]) {
/* 36 */ return binSearch(srcArray, start, mid - 1, key);
/* */ }
/* 38 */ return -1;
/* */ }
/* */
/* */
/* */ public static int binSearch(int[] srcArray, int key) {
/* 43 */ int mid = srcArray.length / 2;
/* 44 */ if (key == srcArray[mid]) {
/* 45 */ return mid;
/* */ }
/* 47 */ int start = 0;
/* 48 */ int end = srcArray.length - 1;
/* 49 */ while (start <= end) {
/* 50 */ mid = (end - start) / 2 + start;
/* 51 */ if (key < srcArray[mid]) {
/* 52 */ end = mid - 1; continue;
/* 53 */ } if (key > srcArray[mid]) {
/* 54 */ start = mid + 1; continue;
/* */ }
/* 56 */ return mid;
/* */ }
/* */
/* 59 */ return -1;
/* */ }
/* */
/* */ public static <E extends Comparable<E>> int binSearch2(E[] srcArray, E key) {
/* 63 */ int mid = srcArray.length / 2;
/* 64 */ if (key.equals(srcArray[mid])) {
/* 65 */ return mid;
/* */ }
/* 67 */ int start = 0;
/* 68 */ int end = srcArray.length - 1;
/* 69 */ while (start <= end) {
/* 70 */ mid = (end - start) / 2 + start;
/* 71 */ if (key.compareTo(srcArray[mid]) < 0) {
/* 72 */ end = mid - 1; continue;
/* 73 */ } if (key.compareTo(srcArray[mid]) > 0) {
/* 74 */ start = mid + 1; continue;
/* */ }
/* 76 */ return mid;
/* */ }
/* */
/* 79 */ return -1;
/* */ }
/* */ }
/* Location: /Volumes/TXS.128G/hope useful/practice/2020.jar!/ch19/BinarySearch.class
* Java compiler version: 8 (52.0)
* JD-Core Version: 1.1.3
*/