public class Problem_04 {
public static void main(String[] args) {
int arr[] = {3, 4, 5, 3, 100, 1, 83, 54, 23, 20};
int n = arr.length;
System.out.println("The minimum difference of two set is :"+ findMinimum(arr, n));
}
private static int findMinimum(int[] arr, int n) {
int sum = 0;
for (int i = 0; i < n; i++)
sum =sum + arr[i];
return findMinSumRecursive(arr,n,0,sum); //recursion
}
private static int findMinSumRecursive(int[] arr,int n,int x,int sum) {
if (n == 0) {
return Math.abs((sum - x)- x);
}
return Math.min(findMinSumRecursive(arr, n-1,x + arr[n - 1],sum),findMinSumRecursive(arr, n - 1, x,sum));
}
}