判断数组是否有序排列的
说明,如果0和1的数据一样的话,暂时没有加入判断
思路
两两比较数据的结果
如果所有的数据结果都一样,代表是排好序的
代码
public class Test {
public static void main(String[] args) {
// 定义一个变量,来标记结果
boolean is_sorted = true;
// 定义一个数组(定义有序的)
int[] num_array = {9, 5, 4, 3, 2, 1};
// 获取第一个成员0与第二个成员1的减法结果
int res = num_array[0] - num_array[1];
// 如果res是正值,那么代表是一种情况。如果是负值,代表是另一种情况.
boolean tag;
if (res > 0) {
tag = true;
} else {
tag = false;
}
// 通过上述的判断,得到了一个初始的排序比较依据
// 遍历数组,让光标从一号位走到倒数第二个下标位置
int max_idx = num_array.length - 1;
for (int i = 1; i < max_idx - 1; i++) {
System.out.println(i);
// 当前光标数据与后面一个光标数据对比,来个标记,如果小于0大于0
int temp_res = num_array[i] - num_array[i + 1];
boolean temp_flag;
if (temp_res > 0) {
temp_flag = true;
} else {
temp_flag = false;
}
// 判断两个标记是否相等
if (temp_flag == tag) {
System.out.println("暂时看来是有序的");
continue;
} else {
System.out.println("不是有序的");
// 只要有一次进入这里,代表一定不是排好序的
is_sorted = false;
break;
}
// 如果相等,如果不相等
}
// 输出结果
System.out.println("是不是有序排列:");
System.out.println(is_sorted);
}
}