Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:我的代码,WA了~~~~哭死,不知道什么原有啊!能考虑都考虑到了,请高手指点一下呀~~~In Reply To:我的代码,WA了~~~~哭死,不知道什么原有啊!能考虑都考虑到了,请高手指点一下呀~~~ Posted by:derness at 2007-07-23 18:49:34 > 运行所给的例子是对的。不知道是不是有什么特牛的数据不行? > #include<iostream> > using namespace std; > int Partition(int a[], int ,int ); > int Fastsort(int a[], int ,int ); > int Swap(int&, int&); > int unsort_Num(char * a,int n) > { > int count=0; > for(int i=0;i<n;i++){ > for(int j=i+1;j<n;j++){ > if(a[i]>a[j]) > count++; > } > } > return count; > } > int main(void) > { > int n,m,i,ii,l,ln; > cin>>n>>m; > char **d= new char* [m]; > for(i = 0;i<m;i++){ > d[i] = new char [n]; > cin>>d[i]; > } > int *unsortedness = new int[m]; > int *flag = new int [m]; > for(ii = 0;ii<m;ii++){ > flag[ii]=0; > unsortedness[ii]=0; > unsortedness[ii]= unsort_Num(d[ii],n); > } > int *copy= new int [m]; > for(ln=0;ln<m;ln++) > copy[ln]=unsortedness[ln]; > Fastsort(copy,0,m); > for(l=1;l<=m;l++) > { > for(int p=0;p<m;p++) > if(copy[l] == unsortedness[p] && flag[p]==0){ > flag[p] = 1;//当数组有相同项时,flag跳过已经输出过的项。 > cout<<d[p]<<endl; > } > } > system("pause"); > return 0; > } > > int Partition(int a[], int p,int r) > { > int x = a[p]; > int i = p-1; > int j = r+1; > while(1) > { > do{ > j--; > }while(a[j] > x); > do{ > i++; > }while(a[i] < x); > if(i<j){ > Swap(a[i],a[j]); > } > else return j; > } > } > > int Fastsort(int a[], int p,int r) > { > if(p < r) > { > int q = Partition(a, p, r); > Fastsort(a, p, q); > Fastsort(a, q+1,r); > } > else return 0; > } > > int Swap(int& a,int& b) > { > int temp =a; > a = b; > b = temp; > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator