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;

}

 

你可能感兴趣的:(poj)