在一个5个数的数组中,输出逆序数(在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数) 本关任务:编写一个能计算数组中逆序数的个数的程序。java
时间: 2024-10-09 14:04:38 浏览: 39
java代码-15符光伟 输入3个数,从大到小输出
在Java中,你可以通过遍历数组并检查每个元素与其后续元素的关系来计算逆序数。这里有一个简单的算法:
```java
public class Main {
public static void main(String[] args) {
int[] array = {5, 2, 4, 3, 1}; // 输入的5个数的数组
int reverseCount = countInversions(array); // 调用函数计算逆序数
System.out.println("数组中的逆序数有: " + reverseCount);
}
/**
* 计算数组中的逆序数
* @param arr 输入的整数数组
* @return 数组中逆序数的个数
*/
public static int countInversions(int[] arr) {
int inversions = 0;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) { // 如果当前元素大于下一个元素
inversions++; // 逆序数增加
}
}
}
return inversions;
}
}
```
在这个程序中,`countInversions`函数遍历数组,对于每对相邻的元素,如果第一个元素大于第二个元素,则认为存在一次逆序,并将计数器`inversions`加一。最后返回逆序数。
阅读全文