public class Sun {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] A = {1,2,3,6,3,10};
MergeSor(A,0,A.length-1);
int x = 16;
Check(A,x);
}
public static Boolean Check(int[] A, int x) {
int i = 0;
int j = A.length - 1;
if(A[i] >= x) {
return false;
}
while(i < j) {
if(A[i] + A[j] == x) {
System.out.println(A[i] + " " + A[j]);
return true;
}else if(A[i] + A[j] > x){
j--;
}else{
i++;
}
}
return false;
}
public static void MergeSor(int[] A, int p, int r) {
if(p < r) {
int q = (int) Math.floor((p + r) / 2);
//System.out.println(q);
MergeSor(A, p , q);
MergeSor(A, q + 1 , r);
Merge(A, p , q , r);
}
}
public static void Merge(int[] A, int low, int middle, int high) {
int[] temp = new int[high - low + 1];
int i = low;
int j = middle + 1;
int k = 0;
while(i <= middle && j <= high) {
if(A[i] <= A[j]) {
temp[k++] = A[i];
i++;
}else {
temp[k++] = A[j];
j++;
}
}
while( i <= middle) {
temp[k++] = A[i];
i++;
}
while( j <= high) {
temp[k++] = A[j];
j++;
}
for(int z = 0; z < k;z++) {
A[low + z] = temp[z];
}
}
}