poj1007 逆序数 排序
非常简单的逆序数+排序。这里对sort和qsort彻底的弄明白了。sort是c++里面的,要包含algorithm头文件,cmp函数要返回bool值。
qsort是包含在stdlib.h这个头文件里面,cmp函数比较特殊cmp(const void*a,const void *b),一般返回int. 我用两个函数来提交了下,sort要比qsort快点呀。
#include <iostream> #include <cstdlib> #include <algorithm> using namespace std; struct Node{ int rank; char a[51]; }node[101]; /*int cmp(const void *a,const void *b) //返回 int { return (*(Node*)a).rank-(*(Node*)b).rank; }*/ bool cmp(Node a,Node b) //返回True or false { return a.rank<b.rank; } int main() { int n,m,i,j,k; freopen("acm.txt","r",stdin); scanf("%d%d",&n,&m); for(i=0; i<m; i++) { cin>>node[i].a; } for(i=0; i<m; i++) { for(j=0; j<n-1; j++) { if(node[i].a[j]=='A') continue; for(k=j+1; k<n; k++) { if(node[i].a[j]>node[i].a[k]) node[i].rank++; } } } //qsort(node,m,sizeof(Node),cmp); //不能用node??为什么 sort(node,node+m,cmp); for(i=0; i<m; i++) cout<<node[i].a<<endl; return 0; }
我是一名在校大学生,热爱编程,虽然起步晚了些,但我会努力的。呵呵!
数据结构 算法