Hi guys,

I'm trying to write a recursive method that checks if the first elements of an array of integers are sorted in ascending order but it didn't work for me !!

``public static Boolean isSorted(int [] a, int n){}``

I tried to copy elements from array a with length n into another array b then , compare every two elements starting from b[0] and b[1] such that :

``````if (b[0] < b[1] ) // that means those elements are in ascending order
{ return true;
}``````

4
Contributors
7
Replies
8
Views
7 Years
Discussion Span
Last Post by JamesCherrill

you are super close. Do you have to check for both ascending and descending or just one.

Edited by Gerbiler: n/a

Why do you need to write this recursively? It would be much simpler with a single loop. Also, recursive methods tend to be much slower and more memory-intensive than their iterative equivalents.

Gerbiler , I know I can feel the answer but I can't catch it :)

I checked for ascending order only ,,

death_oclock

I know and undersand what you said , but I'm studying recursion now and I must write this method recursively

any help with writing the rest of the code will be appreciated

Here's a hint:
Start at the nth element. If that's <= the n-1th element then it's not ascending.
If its >, then you can go on to check (n-1) against (n-2) etc
until you get down to elements 2 vs 1.

Edited by JamesCherrill: n/a

JamesCherrill , I did it ok for n and n-1 but how am I supposed to do it for n-1 and n-2 without copying the array into array of length n ? the method takes an array and an integer as parameters .
!!

I'm really stuck!

You don't need to copy a new array each time. Just change the value of n.

^ like he says. That's where the recursion comes in.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.