java - Recursive Method to Find Smallest Int? -
this question has answer here:
so i've got assignment have create method takes int[] parameter , returns smallest int. there's 1 problem though...we have use recursion! anyway, here code:
static int[] arr = {12, 8, 4, 17}; public static void main(string[] args){ system.out.println("minimum :" + findmin(arr)); } public static int findmin(int[] iarray){ if(arr.length == 0) { system.err.println("please pass array @ least 1 element."); return (integer) null; } else return findminfromarray(iarray, 0, iarray[0]); //call method starting parameters ie index = 0 & min = iarray[0] } private static int findminfromarray(int[] iarray, int index, int min) { if(index <= (iarray.length - 1)){ if(iarray[index] < min){ min = iarray[index]; } system.out.println("before: " + "index = " + index + " | min = " + min); findminfromarray(iarray, index + 1, min); } system.out.println("after: " + "index = " + index + " | min = " + min); return min; } and here output...
before: index = 0 | min = 12 before: index = 1 | min = 8 before: index = 2 | min = 4 before: index = 3 | min = 4 after: index = 4 | min = 4 after: index = 3 | min = 4 after: index = 2 | min = 4 after: index = 1 | min = 8 after: index = 0 | min = 12 minimum :12 so can see, code kind of working, i'm not sure how program stop, rather going again it's doing.
your mistake ignoring result of recursive call.
change
findminfromarray(iarray, index + 1, min); to
return findminfromarray(iarray, index + 1, min); the full fixed method :
private static int findminfromarray(int[] iarray, int index, int min) { if(index <= (iarray.length - 1)){ if(iarray[index] < min){ min = iarray[index]; } system.out.println("before: " + "index = " + index + " | min = " + min); return findminfromarray(iarray, index + 1, min); } system.out.println("after: " + "index = " + index + " | min = " + min); return min; } output :
before: index = 0 | min = 12 before: index = 1 | min = 8 before: index = 2 | min = 4 before: index = 3 | min = 4 after: index = 4 | min = 4
Comments
Post a Comment