编程题目:
35.有一数组 arr[1000]存放了1000 个数,这 1000个数取自1-999, 且只有两个相同的数,剩下的 998个数不同, 写一个搜索算法找出相同的那个数的值(请用 JAVA编程实现,注意空间效率和时间效率尽可能优化)。
示例代码:
package program.calculation.exercise35;
/**
* 35.有一数组 a[1000]存放了1000个数,这 1000个数取自1-999, 且只有两个相同的数,剩下的 998个数不同,
* 写一个搜索算法找出相同的那个数的值(请用 JAVA编程实现,注意空间效率和时间效率尽可能优化)。
*/
public class SearchNumber {
public static void main(String[] args) {
int[] arr = new int[1000];
//先定义998个不相同的数,最后一个数字用于测试
for(int i=0;i<arr.length-1;i++){
arr[i] = i+1;
}
arr[999] = 666;//测试数据
result(arr);
}
//调用折半查找的方法实现查找相同元素
priva