[算法] POJ1007
网址:http://poj.org/problem?id=1007
首先定义一个字符串大小的概念:右边的字母小于前边字母的数量。给定多组字符串,按照大小顺序输出。
用到的方法:
排序算法
首先需要排序,然后对排序后得到的index进行以下的处理
index_1[index[i]]=i;
最终得到输出。
Sample Input
10 6 AACATGAAGG TTTTGGCCAA TTTGGCCAAA GATCAGATTT CCCGGGGGGA ATCGATGCAT
Sample Output
CCCGGGGGGA AACATGAAGG GATCAGATTT ATCGATGCAT TTTTGGCCAA TTTGGCCAAA
源代码
#include<stdio.h> int main() { int column,raw,i,j,k; char str[100][100]; int sort[100]; int sort_index[100]; int sort_index1[100]; scanf("%d %d",&column,&raw); getchar(); for(i=0;i<raw;i++) { for(j=0;j<column;j++) { str[i][j]=getchar(); } getchar(); } for(i=0;i<raw;i++) { sort_index[i]=0; sort[i]=0; for(j=0;j<column-1;j++) { for(k=j+1;k<column;k++) { if(str[i][j]>str[i][k]) sort[i]++; } } } for(i=0;i<raw-1;i++) { for(j=i+1;j<raw;j++) { if(sort[i]>sort[j]) sort_index[i]++; else sort_index[j]++; } } for(i=0;i<raw;i++) { sort_index1[sort_index[i]]=i; } for(i=0;i<raw;i++) { for(j=0;j<column;j++) { printf("%c",str[sort_index1[i]][j]); } printf("\n"); } return 0; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。