数组中的逆序对
题目:在数组中的两个数字如果前一个数字大于后一个数字,则这两个数字组成
一个逆序对。输入一个数组,求出这个数组的逆序对的总数。例如在数组{7,5,6,4}
中,一共存在 5 个逆序对,分别是(7,6)、(7、 5),(7、 4),(6、 4),
题目:在数组中的两个数字如果前一个数字大于后一个数字,则这两个数字组成
一个逆序对。输入一个数组,求出这个数组的逆序对的总数。例如在数组{7,5,6,4}
中,一共存在 5 个逆序对,分别是(7,6)、(7、 5),(7、 4),(6、 4),
(5、 4)。
public class ArrayReverseCouple_1 {
public static void main(String[] args){
int[] arr={7,5,6,4};
int a=findArrayCouple(arr);
System.out.println("该数组中含有逆序对的个数总共为:"+a);
}
public static int findArrayCouple(int[] arr){
if(arr==null||arr.length==0)
return -1;
int len=arr.length;
int sum=0;
int[] a = new int[len];
for(int i=0;i<len;i++){
int count=0;
for(int j=i+1;j<len;j++){
if(arr[i]>arr[j])
count++;
}
//System.out.println(count);
a[i]=count;
}
for(int k=0;k<len;k++){
sum+=a[k];
}
return sum;
}
}