问题:有一组数,对于其中任意两个数组,若前面一个大于后面一个数字,则这两个数字组成一个逆序对,请设计一个高效的算法,计算给定数组中的逆序对个数
例如:
给定数组和它的长度
[1,2,3,4,5,6,7,0],8
public class tast2 {
public static int count(int[] A, int n) {
int i=0;
int j;
int sum=0;
if(n<2){
return sum;
}
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
if(A[i]>A[j]){
sum=sum+1;
}
}
}
return sum;
}
public static void main(String[] args) {
int[] a={1,2,3,4,5,6,7,0};
int b=8;
System.out.println(count(a,b));
}
}
本文介绍了一种计算数组中逆序对数量的算法。逆序对是指数组中任选两个元素,如果前一个元素大于后一个元素,则构成逆序对。文章提供了具体的算法实现,并通过一个示例进行说明。
5万+

被折叠的 条评论
为什么被折叠?



