📄 binarysearch.java
字号:
public class BinarySearch {
public static void main(String[] args) {
int x = Integer.parseInt(args[args.length - 1]);
System.out.println("所需查找的值为: " + x);
//System.out.println(x);
int[] a = new int[args.length - 1];
for (int i = 0; i < a.length; i++) {
a[i] = Integer.parseInt(args[i]);
}
System.out.println("排序后的结果为: " );
numSort(a);
print(a);
binarySearch(a, x, 0, a.length);
}
private static void binarySearch(int[] a, int x,int low, int high) {
int n = a.length;
int mid = 0;
if (low <= high) {
mid = (low + high) / 2;
//System.out.println("所需比较的中间值为: \n");
System.out.println("所需比较的中间值为: \n" + a[mid]);
}/*else if(low > high) {
System.exit(-1);
}*/
if (a[mid] < x && low <= high) {
low = mid + 1;
binarySearch(a, x, low, high);
}
if (a[mid] > x && low <= high) {
high = mid - 1;
binarySearch(a, x, low, high);
}
if (a[mid] == x) {
int mid1 = mid +1;
System.out.println("所查元素在排序后的第" + mid1 + "位置!");
} else if((mid == 0 && a[mid] != x ) || (mid == a.length && a[mid] != x)) {
System.out.println("所查元素不在该序列中!");
}
}
private static void numSort(int[] a) {
for (int i = 0; i < a.length; i++) {
int k = i;
for (int j = k + 1; j < a.length; j++) {
if (a[k] > a[j])
k = j;
}
if (k != i) {
int temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
}
private static void print(int[] a) {
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -