Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write the definition of a static method named isSorted that receives two argumen

ID: 3656911 • Letter: W

Question

Write the definition of a static method named isSorted that receives two arguments: an array of references to objects that implement the Comparable interface and a boolean. If the boolean is true then the method returns true if the objects referenced in the array are in ascending order. On the other hand, if the boolean is false, the method returns true if the objects are in descending order. The method also returns true for arrays of 0 or 1 length. For all other situations, the method returns false.

Explanation / Answer

public static boolean isSorted(Comparable[] x, boolean y) {
boolean isAscending = true;
if (x.length==0 || x.length==1) return true;
else if (y) {
for (int i=0; isAscending && i<x.length-1; i++)
if (x[i].compareTo(x[i+1]) > 0) isAscending = false; // descending
}
else {
for (int i=0; isAscending && i<x.length-1; i++)
if (x[i].compareTo(x[i+1]) < 0) isAscending = false; // ascending
}
return isAscending;
}

----
x[i].compareTo(x[i+1]) > 0 means x[i] > x[i+1] --> descending