// -------------
// IsSorted.java
// -------------
import java.util.Arrays;
import java.util.List;
final class IsSorted {
/**
* O(1) in space
* O(n) in time
*/
public static boolean eval (long[] a, int b, int e) {
assert b <= e;
if (b == e)
return true;
--e;
while (b != e) {
if (a[b] > a[b + 1])
return false;
++b;}
return true;}
/**
* O(1) in space
* O(n) in time
*/
public static boolean eval (Object[] a, int b, int e) {
assert b <= e;
if (b == e)
return true;
--e;
while (b != e) {
if (((Comparable) a[b]).compareTo(a[b + 1]) > 0) // warning: unchecked cast
return false;
++b;}
return true;}
/**
* O(1) in space
* O(n) in time
*/
public static boolean eval (List x) {
final Object[] a = x.toArray();
return eval(a, 0, a.length);}}
final class IsSortedTest {
public static void main (String[] args) {
System.out.println("IsSorted.java");
{
final long[] a = {};
assert IsSorted.eval(a, 0, a.length);
}
{
final long[] a = {2};
assert IsSorted.eval(a, 0, a.length);
}
{
final long[] a = {3, 2, 1};
assert !IsSorted.eval(a, 0, a.length);
}
{
final long[] a = {1, 2, 3};
assert IsSorted.eval(a, 0, a.length);
}
for (int i = 0; i != 10; ++i) {
final long[] a = new long[1000];
RandomFill.eval(a, 0, a.length);
Arrays.sort(a, 0, a.length);
assert IsSorted.eval(a, 0, a.length);}
System.out.println("Done.");}}
syntax highlighted by Code2HTML, v. 0.9.1