java任意给定一个int型数组,你的程序要能判断其是否有序所有代码
时间: 2024-10-24 09:11:24 浏览: 31
在Java中,判断一个整数数组是否有序(升序或降序)可以使用多种方法,例如遍历比较、分治法等。这里提供一种简单的线性时间复杂度O(n)的算法:
```java
public class ArrayComparator {
public boolean isSorted(int[] arr) {
// 如果数组长度小于等于1,直接认为它是有序的
if (arr == null || arr.length <= 1) {
return true;
}
// 使用双指针法,一个指向开始,一个指向结束
int left = 0;
int right = arr.length - 1;
// 比较两个指针所指元素,如果左边大于右边则交换并移动左指针,直到相遇或找到逆序对
while (left < right) {
if (arr[left] > arr[right]) {
// 交换元素
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
// 左指针右移一位
left++;
} else {
// 如果相等,则继续向中间移动右指针
right--;
}
}
// 如果所有的元素都正确排列(即没有逆序),那么返回true,否则返回false
return left == right;
}
// 示例用法
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
System.out.println(isSorted(arr)); // 输出:true
arr = {5, 4, 3, 2, 1};
System.out.println(isSorted(arr)); // 输出:false
}
}
```
阅读全文