设计一个通用方法判断给定的数组是否已经排好序
时间: 2023-05-28 20:07:42 浏览: 132
可以使用以下方法判断给定的数组是否已经排好序:
1. 遍历数组,比较相邻的元素。如果当前元素大于后面的元素,则数组没有排好序。
2. 如果数组是升序排列,则当前元素必须小于或等于后面的元素;如果数组是降序排列,则当前元素必须大于或等于后面的元素。
3. 如果数组是按任意顺序排列,则可以将数组复制一份并排序后比较原数组和排序后的数组是否相同。如果相同,则原数组已经排好序。
以下是一个示例代码:
```
public static boolean isSorted(int[] array) {
boolean isAscending = array[1] >= array[0]; // 判断升序还是降序
for (int i = 0; i < array.length - 1; i++) {
if (isAscending && array[i] > array[i + 1]) {
return false;
} else if (!isAscending && array[i] < array[i + 1]) {
return false;
}
}
return true;
}
```
相关问题
写一个通用方法用于判定给定数组是否已排好序
可以编写一个通用方法来判断给定的数组是否已经排好序。方法如下:
1. 首先,定义一个布尔变量isSorted,初始值为true。
2. 然后,使用for循环遍历数组,从第二个元素开始比较,如果当前元素小于前一个元素,则将isSorted设置为false,并跳出循环。
3. 最后,返回isSorted的值,即可判断给定数组是否已排好序。
代码如下:
public static boolean isSorted(int[] arr) {
boolean isSorted = true;
for (int i = 1; i < arr.length; i++) {
if (arr[i] < arr[i - 1]) {
isSorted = false;
break;
}
}
return isSorted;
}
使用示例:
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = {5, 4, 3, 2, 1};
System.out.println(isSorted(arr1)); // 输出true
System.out.println(isSorted(arr2)); // 输出false
阅读全文