java - 如何在不使用“if”语句的情况下检查整数数组是否已排序?
问题描述
如何在不使用 if 语句的情况下更改此代码以使其正常工作?我尝试使用 while 循环,但它不起作用。从那以后我意识到我错误地使用了while循环。那我该怎么做呢?(使用java)
public class isSorted {
public static void main(String[] args) {
//declaring array literal
double a[] = {1.5, 4.3, 7.0, 19.5, 25.1, 46.2};
int L = a.length;
boolean isSorted = false;
for (double i = 0; i < L; i++) {
if (a[(int) i] < a[(int) (i + 1)]) {
isSorted = true;
}
break;
}
System.out.println(isSorted);
}
}
解决方案
一种方法是这样的:
double a[] = {1.5, 4.3, 7.0, 19.5, 25.1, 46.2};
int i = 0;
while (i < a.length - 1 && a[i] <= a[i + 1])
i++;
boolean isSorted = i >= a.length - 1;
System.out.println(isSorted);
基本上你检查当前元素是否小于或等于下一个元素,直到你发现不匹配或整个数组被解析。然后检查i
变量的值将告诉您数组是否已排序。
要检查降序,只需将条件更改为:
a[i - 1] >= a[i]
推荐阅读
- sql - SQL 存在于 TableA 或 TableB 中
- r - 具有多个类的 pivot_longer 会导致错误(“No common type”)
- python - IMDbPy:如何捕捉 IMDbDataAccessError?
- excel - 从一个表复制到另一个表 (VBA)
- javascript - 如何获取 PHP 日期和当前 JS 日期之间经过的时间
- python - 给定对函数的引用,生成它的源代码,在签名中不带注释
- c# - 无法阻止 asp.net 中的会话到期
- google-compute-engine - 如何将本地文件夹同步到谷歌计算引擎实例文件夹?
- javascript - React Antd 元素类型无效...得到:对象...升级后出错
- python - 如何通过计算python中的特定时间范围来创建新列?