给定排好序的数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X

来源:互联网 发布:app p图软件 编辑:程序博客网 时间:2024/05/16 12:39

public class F {

public static void main(String[] args) {
int a[] = { 2, 1, 6, 4, 8 };
Find(a, 10);
}

//定义查找的方法
static Boolean Find(int[] arr, int sum) {
// 对数组按照降序排列排序
Arrays.sort(arr, 0, arr.length);
int i = (arr.length - 1) / 2;
int j = i + 1;
while ((i >= 0) && (j < arr.length)) {
// 找到
if (arr[i] + arr[j] == sum) {
System.out.println(arr[i] + "+" + arr[j] + "=" + sum);
return true;
}
// 如果两数相加大于sum,则应该向后找小点的数
else if (arr[i] + arr[j] > sum) {
i--;
}
// 如果两数相加小于sum,则应该向前找大点的数
else // (arr[i] + arr[j] < sum)
{
j++;
}
}
System.out.println("未找到! ");
return false;
}


}

阅读全文
0 0
原创粉丝点击