[焦作一中2012]最小交换排序

成绩 0 开启时间 2013年02月21日 星期四 23:02
折扣 0.8 折扣时间 2013年02月28日 星期四 23:02
允许迟交 关闭时间 2013年02月28日 星期四 23:02
输入文件 minsort.in 输出文件 minsort.out

2.最小交换排序

  (minsort.pas/c/cpp)

【问题描述】

    小x最近切了一道很水的排序题,但是在AC之后,他想到了一个问题:

给定n个不相等的整数,将其按从小到大排序,你每次可以对任意一对数进行交换,问最少的交换次数是多少?

【输入】

第一行:一个整数n

第二行:n个用空格隔开的正整数ai,-2^31

 

【输出】

一个整数,表示最小交换次数。

 

【输入输出样例

minsort.in

minsort.out

8

8 23 4 16 77 -5 53 100

 

5

 

【数据范围】

   20%   n<=100

   50%   n<=5000

   100%  n<=100000