CF489_A_插入排序
题目链接:http://codeforces.com/problemset/problem/489/A
AC代码:
1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<cstdlib> 5 #include<algorithm> 6 using namespace std; 7 8 const int maxn = 3000+10; 9 int a[maxn], l[maxn], r[maxn]; 10 int main() { 11 //freopen("test.txt", "r", stdin); 12 int n; 13 while(scanf("%d", &n)!=EOF) { 14 int ans = 0; 15 for(int i=0; i<n; i++) 16 scanf("%d", &a[i]); 17 for(int i=0; i<n; i++) { 18 int k = min_element(a+i, a+n)-a; // 找到[a+i, a+n]里面最小元素的下标 19 if(i!=k) { 20 swap(a[i], a[k]); 21 l[ans] = i; r[ans] = k; ans++; 22 } 23 } 24 printf("%d\n", ans); 25 for(int i=0; i<ans; i++) { 26 printf("%d %d\n", l[i], r[i]); 27 } 28 } 29 return 0; 30 }
看了别人写的,STL真是个好东西。。。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。