poj 1007 纯水题 排序

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<stdlib.h>
char arr[101][51];
int m,n;
int record[101];
int cal(int i){
    int j,k,num=0;
    for(j=0;j<n;j++){
        for(k=j;k<n;k++){
            if(arr[i][k]<arr[i][j]){
                num++;
            }
        }
    }
    return num;
}

int main(){

    int i,j,k,temp,flag;
    scanf("%d %d\n",&n,&m);
    for(i=0;i<m;i++){
        record[i]=i;
        for(j=0;j<n;j++){
            scanf("%c",&arr[i][j]);
        }
        getchar();
    }

    flag=m;
    while(flag>0){
        k=flag;
        flag=0;
        for(i=1;i<k;i++){
            if(cal(record[i])<cal(record[i-1])){
                j=record[i-1];
                record[i-1]=record[i];
                record[i]=j;
                flag=i;
            }
        }
    }
    for(i=0;i<m;i++){
        for(j=0;j<n;j++){
            printf("%c",arr[record[i]][j]);
        }
        printf("\n");
    }
//    system("pause");
    return 0;
}

 

posted on 2013-07-15 15:33  lililqth  阅读(298)  评论(0)    收藏  举报

导航