Java语言高分悬赏:怎么判断一个数组本身是否是有序的,如果是增序输出1,逆序输出0,无序输出-1

Java语言高分悬赏:怎么判断一个数组本身是否是有序的,如果是增序输出1,逆序输出0,无序输出-1

遍历一遍,如果 a[i]< a[i+1] 就说明是有序的,一旦碰到不满足条件的,循环终止得出结论无序。

1、确定你排序的逻辑
2、循环比较相邻两个数,一次循环即可

这个判断还需要考虑全部相等的情况。我觉得可以设计,递增输出1,递减输出-1,全部相等输出0,无序输出空。
首先,通过首尾2个值来,假设该数组是递增、递减还是全部相同。
然后做一次循环看一下比对相邻的2个值,如果循环结果符合第一次的假设,就输出假设的内容;如果结果不同需要区分这2个值是不是相同,如果相同则跳出本次循环进行下一次,如果不同,就直接结束循环输出无序。

相邻元素挨个比较,用个布尔值记录更新每次的比较结果,最后判断布尔值就可以了,比如
//这里数组元素全相等算升序,如果全相等算无序,则把循环的布尔计算改成大于或小于

public class Sample {
    public static void main(String[] args) {
        int [][]data = {
            new int[] {1,2,3},
            new int[] {3,2,1},
            new int[] {1,3,2}
        };
        for (int i=0; i<data.length; i++) {
            System.out.printf("%s:%d\n", Arrays.toString(data[i]), isSorted(data[i]));
        }
    }

    public static int isSorted(int[] arr) {
        boolean asc = true, dsc = true;
        for (int i=0; i<arr.length-1; i++) {//相邻数组元素挨个比较

            asc = asc && (arr[i] <= arr[i+1]); //如果相同不算升序,则把小于等于改成小于
            dsc = dsc && (arr[i] >= arr[i+1]);
        }
        return asc ? 1 : (dsc ? 0 : -1);
    }
}