您的位置:首页 > 移动开发

poj 1674 Sorting by Swapping

2012-08-10 20:13 543 查看
#include <iostream>
#include <memory.h>
#include <algorithm>
using namespace std;

int num[10010];

int main()
{
int tc, n, i, j, ans;
cin >> tc;
while (tc--){
cin >> n;
ans = 0;
memset(num, 0, sizeof(num));
for (i = 1; i <= n; i++){
cin >> num[i];
}

//暴力解决:如果顺序相同就继续查找,否则就找出属于这个下标位置上的这个数,再交换位置!
for (i = 1; i <= n; i++){
if (num[i] == i)  continue;
for (j = i+1; j <= n; j++){
if (num[j] == i){
swap(num[i], num[j]);
ans++;
break;
}
}
}
cout << ans << endl;

}

system("pause");
}

/*
20
3
1 2 3
5
2 3 5 4 1
6
6 5 2 3 1 4
5
5 4 3 2 1
1
2
2
2 1
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: