I am writing a divide and conquer recursive function to find minimum element in array. But I am getting java.lang.StackOverflowError . Here is my code. Thanks in advance.
import java.util.Scanner;
public class dynamic {
public static void main(String arg[])
{ int i=0;
Scanner s=new Scanner(System.in);
int num[]=new int[8];
while(i<8)
{
num[i]=s.nextInt();
i++;
}
int b=findmin(num);
System.out.println(b);
}
public static int findmin(int num[])
{
if(num.length==0)return 0;
return findmin(num,0,num.length-1);
}
public static int findmin(int num[],int first,int last)
{
if(first==last )return num[first];
if(first+1==last)return Math.min(num[first],num[last]);
if(findmin(num,(last/2)+1,last)>findmin(num,first,last/2)) return findmin(num,first,last/2);
else return findmin(num,(last/2)+1,last);
}
}