简单排序
View Code
//poj1007 #include <iostream> #include <algorithm> #include <string> using namespace std; const int maxn = 101; struct item { string sequence; int unsort; }dna[maxn]; int n, m; bool operator<(item a, item b) { return a.unsort < b.unsort; } int calculate(string st) { int i, j, ans; ans = 0; for (i = 0; i < st.length(); i++) for (j = i; j < st.length(); j++) if (st[i] > st[j]) ans++; return ans; } void init() { int i; getchar(); for (i = 0; i < n; i++) { getline(cin, dna[i].sequence); dna[i].unsort = calculate(dna[i].sequence); } } void print() { int i; for (i = 0; i < n; i++) cout << dna[i].sequence << endl; } int main() { //freopen("t.txt", "r", stdin); cin >> m >> n; init(); sort(dna, dna + n); print(); return 0; }