上一次写了数据结构与算法中的排序算法辅助工具类和三种基本排序,详情见数据结构与算法——排序算法辅助工具编写与三种基本排序算法(Java实现)。
但是后来在学习其他算法的时候,发现其中的判断数组是否有序的方法中是有BUG的,因为它只能判断数组在顺序的情况下是否有序,而无法判断数组在倒序的情况下是否有序,于是我在之前的方法上进行了方法的增强和修改。
- 判断一个数组是否有序,有序返回true,无序返回false
/**
* 判断一个数组是否有序,有序返回true,无序返回false
* @param arr
* @return
*/
public static boolean isOrderly(int[] arr) {
if(isOrderAsc(arr) || isOrderDesc(arr)) {
return true;
}
return false;
}
/**
* 判断一个数组是否顺序有序,有序返回true,无序返回false
* @param arr
* @return
*/
private static boolean isOrderAsc(int[] arr) {
for(int i=0;i < arr.length-1;i++) {
if(arr[i] > arr[i+1]) {
return false;
}
}
return true;
}
/**
* 判断一个数组是否倒序有序,有序返回true,无序返回false
* @param arr
* @return
*/
private static boolean isOrderDesc(int[] arr) {
for(int i = arr.length-1; i > 0; i--) {
if(arr[i] > arr[i-1]) {
return false;
}
}
return true;
}