使用二分法在一个数组中查找一个数:
package com.test;
public class BinaryFind {
private final static int size = 500000;
public static void main(String[] args) {
int[] a = new int[size];
for (int i = 0; i < size; i++) {
a[i] = i + 1;
}
find(a, -500001155);
}
private static void find(int a[], int n) {
int middle = 0;
int start = 0;
int end = a.length;
try {
while (start < end) {
middle = (start + end) / 2;
if (n == a[middle]) {
System.out.println("找到了" + n);
return;
} else if (n > a[middle]) {
start = middle + 1;
} else {
end = middle - 1;
}
}
} catch (Exception e) {
e.printStackTrace();
System.out.println(start + "|" + end + "|" + middle);
// TODO: handle exception
}
System.out.println("找不到" + n);
}
}
注:数组有序,从大到小,
本文介绍了一种在有序数组中使用二分法查找特定数值的方法,并通过一个Java示例程序展示了如何实现这一算法。该程序首先创建了一个包含500,000个元素的数组并对其进行填充,然后尝试在一个有序数组中查找指定数值。
1034

被折叠的 条评论
为什么被折叠?



