Вот моя тестовая программа деления и покорения, но это дает мне ошибку. Я направляюсь в правильном направлении?Simple Divide and Conquer Пример
public class getSum {
static int sum = 0;
public static void main(String[] args) {
int[] numbers = {2,2,2,2,2,2,2,2};
int amount = 0;
amount = sumArray(0,numbers.length,numbers);
System.out.print(amount);
}
public static int sumArray(int first, int last, int[] A){
int index = last - first;
if(index == 1){
return sum;
}else if(index <= 4 && index > 1){
for(int i = first; first < last; i++){
sum += A[i];
}
return sum;
}
return (sumArray(first, last/2, A) + sumArray(last/2, A.length, A));
}
}
Здесь ошибка Исключение в потоке «главный» java.lang.StackOverflowError в getSum.sumArray (getSum.java:16)
Ищу простой пример принимает массив из 16 и разбивая его на базовый футляр 4. У меня возникли проблемы с полным пониманием того, как выплюнуть массив, а затем разделить его снова. затем объедините все расщепления в конце.
любой конкретный язык? –
C++, java или что-то в этом роде. Мне просто нужно понимание – shinjuo