A1078. 逆序对个数

问题描述

  在一个数列(a1, a2, a3, …, an)中,对于1<=i<j<=n,如果ai>aj,则称(i,j)是一个逆序对。
  如在数列(3, 1, 5, 2)中,有(1,2), (1,4), (3,4)共3个逆序对。
  给定一个数列,求数列中的逆序对的个数。
输入格式
  输入的第一行包含一个正整数n(1<=n<=100),表示数列中的元素个数。
  第二行包含n个非负整数,为a1,a2,…,an。数列中的每个元素都不大于10000。
输出格式
  输出一个整数,表示数列中有多少个逆序对。
样例输入
4
3 1 5 2
样例输出
3
package www.tsinsen.com;

import java.util.Scanner;

public class A1078 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan=new Scanner(System.in);
        int n=scan.nextInt();
        int[] arr=new int[n];
        for(int i=0;i<arr.length;i++){
            arr[i]=scan.nextInt();
        }
        int count=0;
        for(int i=0;i<arr.length-1;i++){
            for(int j=i+1;j<arr.length;j++){
                if(arr[i]>arr[j]){
                    count++;
                }
            }
        }
        System.out.println(count);
    }

}

 

posted @ 2018-03-07 23:26  henu小白  阅读(174)  评论(0编辑  收藏  举报